WO2021062736A1 - 划分方法、编码器、解码器以及计算机存储介质 - Google Patents

划分方法、编码器、解码器以及计算机存储介质 Download PDF

Info

Publication number
WO2021062736A1
WO2021062736A1 PCT/CN2019/109653 CN2019109653W WO2021062736A1 WO 2021062736 A1 WO2021062736 A1 WO 2021062736A1 CN 2019109653 W CN2019109653 W CN 2019109653W WO 2021062736 A1 WO2021062736 A1 WO 2021062736A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
iteration
points
input point
equal
Prior art date
Application number
PCT/CN2019/109653
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 KR1020227011834A priority Critical patent/KR102692779B1/ko
Priority to CN201980098780.9A priority patent/CN114207668A/zh
Priority to EP19947936.1A priority patent/EP4040393A4/en
Priority to JP2022519645A priority patent/JP7386337B2/ja
Priority to PCT/CN2019/109653 priority patent/WO2021062736A1/zh
Priority to CN202210356934.3A priority patent/CN114820831A/zh
Publication of WO2021062736A1 publication Critical patent/WO2021062736A1/zh
Priority to US17/702,674 priority patent/US11483560B2/en
Priority to US17/931,272 priority patent/US11785216B2/en
Priority to US18/449,874 priority patent/US20230388497A1/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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Definitions

  • the embodiments of this application relate to the level of detail (LOD) division technology in the coding and decoding of Geometry-based Point Cloud Compression (G-PCC), and in particular to a division method, encoder, Decoder and computer storage medium.
  • LOD level of detail
  • G-PCC Geometry-based Point Cloud Compression
  • the geometric information of the point cloud and the attribute information corresponding to each point cloud are encoded separately.
  • the geometric encoding is performed first, and after the geometric encoding is completed, the geometric information is reconstructed; currently, Attribute coding is mainly for color information.
  • Attribute coding is mainly for color information.
  • attribute coding first convert the color information from RGB color space to YUV color space, and then use the reconstructed geometry information to recolor the point cloud, so that the uncoded attribute information and the reconstructed geometry Corresponding information.
  • color information coding there are mainly two transformation methods. One is the promotion transformation based on LOD division.
  • the LOD division is mainly divided into LOD division based on distance and LOD division based on fixed sampling rate; the second is to directly perform regional autonomy on attributes.
  • Adaptive hierarchical transformation (Region Adaptive Hierarchal Transform, RAHT).
  • the method of searching within a range of the Morton code corresponding to the current point is used on the basis of the LOD division based on distance. Divide the LOD.
  • the LOD division structure needs to be used to predict the attributes of the neighbor nodes.
  • the LOD layer obtained by the existing LOD division method leads to the prediction of the neighbor nodes The accuracy is low.
  • the embodiments of the present application provide a partitioning method, an encoder, a decoder, and a computer storage medium, which can improve the prediction accuracy of neighbor nodes and increase the codec rate.
  • an embodiment of the present application provides a division method, and the method includes:
  • the first LOD layer to the i-1th LOD layer are determined as the LOD layer after the point cloud to be divided is divided.
  • an encoder in a second aspect, provides an encoder, and the encoder includes:
  • the first calculation module is configured to obtain the point cloud to be divided, and calculate the Morton code of the point cloud to be divided;
  • the first determining module is configured to determine the point cloud to be divided as the input point cloud of the first iteration
  • the first judging module is configured to judge whether the number of points in the input point cloud of the i-th iteration is equal to 0 when the i-th iteration is performed; where i is a positive integer whose initial value is equal to 1;
  • the first right shift module is configured to shift the Morton code of the input point cloud of the i-th iteration to the right by K bits when the number of points in the input point cloud of the i-th iteration is not equal to 0, where , K is a positive integer;
  • the first selection module is configured to select a point from the points with the same value of the Morton code shifted by K bits to the right;
  • the first division module is configured to use the selected points to form the i-th detailed division LOD layer, and determine the remaining points in the input point cloud of the i-th iteration except for the selected points as the i+1-th
  • the iterative input point cloud, i is updated to i+1, and the first judgment module is returned to execute when the i-th iteration is performed, it is judged whether the number of points in the i-th iteration of the input point cloud is equal to 0;
  • the second determining module is configured to determine the first LOD layer to the i-1th LOD layer as the to-be-divided point cloud division when the number of points in the input point cloud of the i-th iteration is equal to 0 After the LOD layer.
  • an embodiment of the present application provides a decoder, and the decoder includes:
  • the second calculation module is configured to obtain the point cloud to be divided, and calculate the Morton code of the point cloud to be divided;
  • the third determining module is configured to determine the point cloud to be divided as the input point cloud of the first iteration
  • the second judgment module is configured to judge whether the number of points in the input point cloud of the i-th iteration is equal to 0 when the i-th iteration is performed; where i is a positive integer whose initial value is equal to 1;
  • the second shift right module is configured to shift the Morton code of the input point cloud of the i-th iteration to the right by K bits when the number of points in the input point cloud of the i-th iteration is not equal to 0; , K is a positive integer;
  • the second selection module is configured to select a point from the points with the same value of the Morton code shifted by K bits to the right;
  • the second division module is configured to use the selected points to form the i-th detailed division LOD layer, and determine the remaining points in the input point cloud of the i-th iteration except for the selected points as the i+1-th
  • the iterative input point cloud, i is updated to i+1, and the second judgment module is returned to execute when the i-th iteration is performed, it is judged whether the number of points in the i-th iteration of the input point cloud is equal to 0;
  • the fourth determining module is configured to determine the first LOD layer to the i-1th LOD layer as the to-be-divided point cloud division when the number of points in the input point cloud of the i-th iteration is equal to 0 After the LOD layer.
  • an encoder in a fourth aspect, provides an encoder, and the encoder includes:
  • an encoder in a fifth aspect, provides an encoder, and the encoder includes:
  • an embodiment of the present application provides a computer-readable storage medium, in which executable instructions are stored, and when the executable instructions are executed by one or more processors, the processors execute one or more of the above The division method described in multiple embodiments.
  • the embodiments of the present application provide a dividing method, an encoder, a decoder, and a computer storage medium.
  • the method may include: obtaining a point cloud to be divided, calculating the Morton code of the point cloud to be divided, and determining the point cloud to be divided as The input point cloud of the first iteration, when the i-th iteration is performed, determine whether the number of points in the i-th iteration of the input point cloud is equal to 0, where i is a positive integer with the initial value equal to 1, and when the i-th iteration When the number of points in the input point cloud of the second iteration is not equal to 0, the Morton code of the input point cloud of the i-th iteration is shifted to the right by K bits, where K is a positive integer, and the Morton code is shifted from the right by K bits.
  • a point uses the selected points to form the i-th detail to divide the LOD layer, and determine the remaining points in the i-th iteration of the input point cloud except for the selected points as the i+
  • the input point cloud of 1 iteration, i is updated to i+1, and the execution is returned.
  • the i iteration it is judged whether the number of points in the input point cloud of the i iteration is equal to 0.
  • the first LOD layer to the i-1th LOD layer are determined as the LOD layer after the point cloud to be divided; that is, in the embodiment of the present application, through iteration
  • the Morton code of each iteration of the input point cloud is shifted to the right by K bits, and then a point is selected from the points with the same value of the Morton code after shifting to the right by K bits, and the selected points are combined into this iteration
  • the formed LOD layer, through this division method because the points that are adjacent to the Morton code are often in adjacent positions in the geometric space, the Morton code is shifted to the right, and the points are selected based on the Morton code after the right shift.
  • the distribution of point clouds and the spatial distance between point clouds can be comprehensively considered, and the resulting LOD layer division is based on the distribution of point clouds and the spatial distance between point clouds. In this way, the accuracy of neighbor node prediction based on the LOD layer is improved, thereby improving the coding and decoding efficiency.
  • Figure 1 is a flow chart of G-PCC encoding
  • Figure 2 is a schematic diagram of the process of dividing LOD based on distance
  • Figure 3 is a schematic diagram of the process of dividing LOD based on Morton order
  • FIG. 4 is a schematic flowchart of an optional division method provided by an embodiment of this application.
  • FIG. 5 is a schematic flowchart of an example of an optional division method provided by an embodiment of this application.
  • FIG. 6 is a schematic structural diagram of an optional encoder provided by an embodiment of the application.
  • FIG. 7 is a schematic structural diagram of an optional decoder provided by an embodiment of the application.
  • FIG. 8 is a schematic structural diagram of another optional encoder provided by an embodiment of the application.
  • FIG. 9 is a schematic structural diagram of another optional decoder provided by an embodiment of the application.
  • each slice is encoded independently.
  • Figure 1 is a flow chart of G-PCC encoding. As shown in Figure 1, it is applied in a point cloud encoder.
  • the point cloud data For the point cloud data to be encoded, the point cloud data is divided into multiple slices first. In each slice, the geometric information of the point cloud and the attribute information corresponding to each point cloud are coded separately.
  • the geometric information In the geometric encoding process, the geometric information is coordinated to convert the point cloud into a bounding box (bounding box), and then quantized. This step of quantization mainly plays the role of scaling. Due to the quantization rounding, a part of the The geometric information of the point cloud is the same, so it is determined whether to remove the duplicate points based on the parameters.
  • the process of quantifying and removing the duplicate points is also called the voxelization process.
  • the bounding box is divided into eight sub-cubes, and the non-empty (including points in the point cloud) sub-cubes are continued to be divided into eight equal parts until the leaf knots are obtained.
  • the point is a 1x1x1 unit cube
  • the division is stopped, and the points in the leaf nodes are arithmetic coded to generate a binary geometric bit stream, that is, a geometric code stream.
  • octree division In the process of encoding geometric information based on trisoup (triangle soup, triangular face set), octree division must also be performed first, but different from the geometric information encoding based on octree, the trisoup does not need to step by step the point cloud Divide into a unit cube with a side length of 1x1x1, but divide it into a block (sub-block) when the side length is W, and stop dividing.
  • the geometric coding is completed, and after the geometric information is reconstructed, color conversion is performed, and the color information (that is, the attribute information) is converted from the RGB color space to the YUV color space. Then, the reconstructed geometric information is used to recolor the point cloud, so that the uncoded attribute information corresponds to the reconstructed geometric information.
  • the color information coding process there are mainly two transformation methods, one is the distance-based lifting transformation that relies on the LOD division, and the other is the RAHT transformation. Both methods will convert the color information from the spatial domain to the frequency domain. The high-frequency coefficients and low-frequency coefficients are obtained by transformation, and finally the coefficients are quantized (ie, quantized coefficients).
  • the geometrically coded data after octree division and surface fitting and the quantized coefficient processing attribute coded data are slice-combined, and then coded sequentially
  • the vertex coordinates (that is, arithmetic coding) of each block generate a binary attribute bit stream, that is, the attribute code stream.
  • a distance-based method is used to divide the LOD for the Category3 sequence point cloud when performing attribute transformation.
  • the method of dividing LOD based on distance is used in TMC3V0 encoder and TMC13 attribute transformation lifting.
  • the method of dividing LOD based on distance is also added to the predcting attribute transformation in TMC13, that is, LOD division is applied to point cloud attribute transformation Predicting and lifting.
  • the LOD division process is after the geometric reconstruction of the point cloud. At this time, the geometric coordinate information of the point cloud is known. The process of dividing the LOD is applied to the encoding end and the decoding end of the point cloud at the same time.
  • the specific process is as follows:
  • the algorithm process is to divide the LOD layer through continuous iteration .
  • the generation process of the refinement level R l corresponding to the lth iteration is as follows:
  • the l-th LOD set that is, LOD l is obtained by merging the points in the refinement levels R 0 , R 1 , ..., R 1;
  • Figure 2 is a schematic diagram of the process of dividing LOD based on distance.
  • the point cloud to be divided this time includes points P0, P1, P2, P3, P4, P5, P6, P7, P8 and P9, among which the original point cloud sequence Are: P0, P1, P2, P3, P4, P5, P6, P7, P8 and P9, the LOD0 obtained by the above-mentioned method of dividing the LOD based on the distance is P4, P5, P0 and P1, and the LOD1 is P4, P5, P0, P1, P3, P2 and P6, LOD2 are P4, P5, P0, P1, P3, P2, P6, P7, P8 and P9.
  • the related technology also mentions a solution to reduce the computational complexity of LOD generation, which is mainly based on Morton order to divide LOD.
  • Morton code realizes one-dimensional and two-dimensional (or multi-dimensional) conversion, which is stored through cross storage. Two digits produce one number. Compared with the original search for all the points, the calculation complexity of LOD is much reduced.
  • the main steps are as follows:
  • Morton code M is to start from the highest digit of x, y, z, and alternately arrange x l , y l , z l to the lowest digit in turn.
  • the calculation formula of M is as follows:
  • D0 (representing the threshold of the initial distance) and ⁇ (representing the ratio of the distance threshold when the adjacent LOD layer is divided) are user-defined initial parameters, and ⁇ >1.
  • I denote the index of all points in the point cloud.
  • the point in LOD k will find the nearest neighbor from LOD 0 to LOD k-1 , that is, the point closest to it.
  • the specific process of the algorithm is as follows:
  • O(k) and L(k) are initialized to the empty set
  • Each iteration is traversed according to the index order of the save points in I.
  • Each traversal will calculate the geometric distance from the current point to all points in a certain range in the set O(k).
  • search for the first index greater than the Morton code point corresponding to the current point in the set O(k) and then search in a search range SR1 of the index (SR1 Represents the search range based on Morton code, generally 8,16,64). If a point whose distance from the current point is less than the threshold d l is found in this range, the current point is added to the set L(k), otherwise it is added to the set O(k);
  • Figure 3 is a schematic diagram of the process of dividing LOD based on Morton order.
  • the point cloud to be divided this time includes points P0, P1, P2, P3, P4, P5, P6, P7, P8 and P9, among which, the original point The order of the clouds is: P0, P1, P2, P3, P4, P5, P6, P7, P8 and P9.
  • the points arranged in ascending order based on Morton order are: P4, P1, P9, P5, P0, P6, P8, P2, P7 and P3, the LOD0 obtained by the above method of dividing the LOD based on the Morton order is P4, P5, P0 and P1, LOD1 is P4, P5, P0, P1, P3, P2 and P6, and LOD2 is P4, P5, P0, P1, P3, P2, P6, P7, P8 and P9.
  • the method of dividing LOD based on the distance uses the method of searching within a range of the Morton code corresponding to the current point, calculating the spatial geometric distance from the point in the range to the current point and comparing it with the threshold, until all points reach the current point When the distance of the point is greater than the threshold, the point is added to the current LOD layer, otherwise it will be divided into the next layer. Based on the test data obtained by the test, the time used by the method of dividing the LOD based on the distance occupies about 70% to 80% of the overall coding time. Obviously, the computational complexity is relatively high.
  • the point cloud is divided into LOD based on distance. Because there is a great correlation between the attributes of adjacent points in space, the LOD-based structure can be used to predict the attributes of neighbor nodes, so as to achieve the purpose of removing attribute redundancy between adjacent points. Nevertheless, because different point clouds have different spatial distributions, the object densities of different point clouds are different. Therefore, in the process of dividing the LOD based on distance, the prior art is based on the uniform distribution of point clouds (equivalent to the same divided distance threshold). ) The neighbor points obtained by the search are not accurate enough, which leads to a large prediction residual and low coding efficiency.
  • the method of searching within a range of the Morton code corresponding to the current point is used on the basis of the LOD division based on distance.
  • Divide LOD the LOD division structure needs to be used to predict the attributes of neighbor nodes. Because different point clouds have different spatial distributions, different point clouds have different object densities. Therefore, the LOD division structure obtained by the above division method is not accurate enough to predict neighbor nodes, which leads to large prediction residuals and affects the efficiency of coding and decoding. It can be seen that the LOD layer obtained by the existing LOD division method As a result, the prediction accuracy of neighbor nodes is low.
  • FIG. 4 is an optional division provided by an embodiment of this application.
  • the division method provided by the embodiment of the application is to improve the LOD generation process in the above-mentioned lifting and predicting attribute transformation, and is used in the encoder and the decoder. This method uses the improved technology to perform the LOD structure before performing the lifting or predicting transformation.
  • the division is applied to the block diagram of LOD generated in Figure 1.
  • the Morton code of the point cloud to be divided is first calculated.
  • the Morton code can be used to know the spatial position relationship between points, which is beneficial to the completion of the division.
  • the neighbor nodes are predicted after the LOD layer.
  • S402 Determine the point cloud to be divided as the input point cloud of the first iteration
  • the point cloud to be divided is obtained, where the point cloud to be divided includes at least two points, for example, 10 points.
  • the point cloud to be divided is determined as the input point cloud of the first iteration.
  • the method may include :
  • Each group of point clouds is determined as the input point cloud of the first iteration.
  • the number of iterations is represented by i, and i is a positive integer whose initial value is equal to 1;
  • K is a positive integer
  • the value of K here can be a fixed value obtained through training, or a value obtained through any of the following methods, which is not specifically limited in the embodiment of the present application.
  • the method may further include:
  • the value of K is determined.
  • the value of K is determined according to the distribution of the point cloud to be divided, so that in each iteration, the Morton code is shifted to the right by K bits, so that the spatial distribution of the point cloud is taken into account when the Morton code is shifted to the right. , Can achieve better forecasting effect.
  • the method may further include:
  • the K value of each iteration can be determined according to the number of points in the input point cloud of each iteration and the distribution of the input point cloud of each iteration, so that the The right shift number of Morton code in each iteration takes into account the number of point clouds and the spatial distribution of point clouds, which can achieve a better prediction effect.
  • S405 may include:
  • the first point sorted is selected.
  • the Morton codes are sorted in the order from small to large, and then at the point where the values of the Morton codes shifted by K bits to the right are equal, at least one set of Morton codes shifted to the right by K bits are equal in value Then select the first point from each group, that is, the point that is the first in the original point cloud order among the points with the same Morton code value shifted to the right by K bits.
  • S405 may include:
  • the point closest to the centroid among the points with the same value of the Morton code shifted to the right by K is determined as the selected point.
  • centroid is calculated from the three-dimensional coordinates of each point in the input point cloud of this iteration. After the centroid is obtained , And then calculate the point closest to the centroid among the points with the same value of the Morton code shifted by K bits to the right, and select this point.
  • the method may further include :
  • a number of selected points are selected from the points with the same value of the Morton code shifted by K bits to the right.
  • more than one point can be selected from the points with the same value of the Morton code shifted by K bits to the right, and the corresponding value can be determined according to the number of points with the value of the Morton code shifted to the right by K bits.
  • the number of points with the same value of Morton code after shifting K bits to the right is 10, 8, 6, 4, etc., to determine the corresponding selected number can be based on Morton code
  • the number of points with the same value is determined. For example, if the number of points with the same value of the Morton code after shifting K bits to the right is 10, the corresponding selected number is 5, and for shifting K bits to the right
  • the number of points with the same value of the Morton code is 8, and the corresponding selected number is 4.
  • the number of points with the same value is 6.
  • the corresponding number of selections is 3, the number of points with the same value of Morton code shifted by K bits to the right is 4, and the corresponding selection number is 2, which can be determined according to the proportional relationship. Select the number.
  • the selected number select a number of points from the points with the same value of the Morton code shifted to the right by K bits.
  • the selected points can be selected arbitrarily, or they can be selected in a specified way Select a few points, here, the embodiment of the application does not specifically limit this.
  • the method may further include :
  • a point is selected every second preset threshold according to the sorting result.
  • each group of points with equal values of Morton code shifted by K bits to the right is also arranged according to the sorting result, here, one point is selected according to every second preset threshold to obtain the selected points.
  • the above-mentioned second preset threshold is a value set according to requirements.
  • S406 Use the selected points to form the i-th detailed LOD layer, and determine the remaining points in the i-th iteration input point cloud except for the selected points as the i+1-th iteration input point cloud, i Update to i+1, return to execute S403;
  • the selected points are used to form the LOD layer of this iteration, that is, the i-th LOD layer, so that after this iteration, some points in the input point cloud of this iteration are divided into the LOD layer.
  • the remaining points in the input point cloud of this iteration except for the selected points are determined as the input point cloud of the i+1th iteration, i is updated to i+1, and S403 is executed again.
  • the adjacent points in space can be found.
  • the LOD layer from One or more points are selected from each group of adjacent points, so that the spatial distribution between the point clouds considered by the divided LOD layer is beneficial to improve the prediction accuracy of neighbor nodes.
  • the iteration can be ended, and the obtained first LOD layer to the i-th -1 LOD layer is used as the LOD layer after the point cloud to be divided is divided.
  • the i-th detailed division LOD layer is formed by using the selected points, and the i-th iteration The remaining points in the input point cloud except the selected points are determined to be the input point cloud of the i+1th iteration.
  • the method may also include:
  • the divided LOD layer, the first LOD layer to the i-1th LOD layer are determined as: the LOD layer after the point cloud to be divided is divided.
  • the algorithm for dividing the LOD based on the distance or the LOD based on the fixed sampling rate is divided to obtain the LOD layer; here, the embodiment of the present application does not specifically limit this.
  • the preset algorithm for dividing LOD based on distance can be called , Or call the preset algorithm of dividing the LOD based on a fixed sampling rate to divide the input point cloud of the i-th iteration to obtain the LOD layer, and finally, the first LOD layer obtained before to the i-1th LOD layer , And the divided LOD layer is used as the LOD layer after dividing the point cloud to be divided.
  • FIG. 5 is a schematic flowchart of an example of an optional division method provided by an embodiment of the application. As shown in FIG. 5, the division method can be applied to an encoder or a decoder. This example uses Taking the encoder as an example, the division method may include:
  • each point is represented as P[i]
  • the Morton codes corresponding to the points in the adjacent positions in the space will be equal, because the points that are adjacent to the Morton code In geometric space, it is often located in adjacent positions. It is precisely this feature of Morton code that shifts the Morton code corresponding to all points in the point cloud to be coded to the right by K bits, and then moves the adjacent points in the space. gather together;
  • the points with the same value of Morton code shifted by K bits obtained in S502 are sampled, and one point is selected for each iteration of the gathered point set, and the attribute of the predicted point is used to predict the point.
  • the attribute of the point is based on the weighted average of the spatial distance to obtain the reconstructed attribute value of the predicted point.
  • the attribute residual of the predicted point is obtained by using the reconstructed attribute value and the original attribute value, and the attribute of the neighbor point is obtained by using the reconstructed attribute value and the predicted residual.
  • Prediction after each sampling, a prediction will be made, and then a final prediction will be obtained by combining each prediction, so as to predict the attributes of the remaining neighbor points in the point cloud to be coded;
  • the sampling points obtained in S503 are regarded as the points in the current LOD layer, and the other remaining points are regarded as the points higher than the current LOD layer; in practical applications, here, the Morton code after K bits can be shifted to the right
  • the first point among the points with equal values is used as the sampling point.
  • S505 Determine whether the remaining points are all traversed or whether they are all divided; if so, end the division of the LOD layer, otherwise return to execute S502 to continue the division;
  • the right shift is performed by K bits, and the above S502 to S505 are repeated until all the LODs are divided or all the points are traversed.
  • the LOD is divided by the point cloud spatial distribution and the point cloud spatial distance
  • the LOD is divided by Morton code right shift. Not only can the distance of the geometric space be considered, but also the distribution of the point cloud will be considered comprehensively.
  • the number of sampling points will be reduced in the denser point cloud, and the number of sampling points will be increased in the sparser place. In the sparse part, due to the long spatial distance between the points, the attribute residuals between adjacent points will generally be large when predicting.
  • the Morton code is shifted to the right by a certain number of digits to obtain different numbers of point sets, and then sampling points are used in each point set to predict the attributes of neighbor points.
  • the embodiments of the present application can improve the reconstruction quality of the attribute part, and can reduce the coding and decoding time and calculation complexity of the attribute under the premise that the performance is not basically affected, as shown in Table 1 below:
  • BD-rate is a parameter used to measure the quality of performance. When BD-rate is negative, it means performance becomes better. On this basis, the greater the absolute value of BD-rate, the greater the performance gain.
  • the division method provided by the embodiment reduces the time required to divide the LOD, thereby reducing the coding and decoding time.
  • the embodiment of the application provides a method for dividing.
  • the method may include: obtaining the point cloud to be divided, calculating the Morton code of the point cloud to be divided, determining the point cloud to be divided as the input point cloud of the first iteration, when When performing the i-th iteration, judge whether the number of points in the input point cloud of the i-th iteration is equal to 0, where i is a positive integer with the initial value equal to 1, and when the number of points in the input point cloud of the i-th iteration is When the number is not equal to 0, move the Morton code entered into the point cloud in the i-th iteration to the right by K bits, where K is a positive integer, select a point from the point where the value of the Morton code is equal after shifting by K bits to the right , Use the selected points to form the i-th detail division LOD layer, and determine the remaining points in the i-th iteration input point cloud except for the selected points as the i+1-th iteration input
  • FIG. 6 is a schematic structural diagram of an optional encoder provided by an embodiment of the present application. As shown in FIG. 6, the encoder may include:
  • the first calculation module 61 is configured to obtain the point cloud to be divided, and calculate the Morton code of the point cloud to be divided;
  • the first determining module 62 is configured to determine the point cloud to be divided as the input point cloud of the first iteration
  • the first judging module 63 is configured to judge whether the number of points in the input point cloud of the i-th iteration is equal to 0 when the i-th iteration is performed; where i is a positive integer whose initial value is equal to 1;
  • the first right shift module 64 is configured to shift the Morton code of the input point cloud of the i-th iteration to the right by K bits when the number of points in the input point cloud of the i-th iteration is not equal to 0; where K is Positive integer
  • the first selection module 65 is configured to select a point from the points with the same value of the Morton code shifted by K bits to the right;
  • the first division module 66 is configured to use the selected points to form the i-th detailed division LOD layer, and determine the remaining points in the i-th iteration of the input point cloud except for the selected points as the i+1-th iteration
  • the input point cloud of i is updated to i+1, and the first judgment module 63 is returned to execute when the i-th iteration is performed, it is judged whether the number of points in the input point cloud of the i-th iteration is equal to 0;
  • the second determining module 67 is configured to determine the first LOD layer to the i-1th LOD layer as the LOD after the point cloud to be divided is divided when the number of points in the input point cloud of the i-th iteration is equal to 0 Floor.
  • the first determining module 62 may also be configured to:
  • the first determining module 62 may also be configured to:
  • the Morton code of the input point cloud of the i-th iteration is shifted to the right by K bits, according to the mid-point of the input point cloud of the i-th iteration
  • the number of and the distribution of the input point cloud of the i-th iteration determine the value of K.
  • the encoder can also be configured as:
  • the divided LOD layer, the first LOD layer to the i-1th LOD layer are determined as: the LOD layer after the point cloud to be divided is divided.
  • the first selection module 65 may be specifically configured as:
  • the first point sorted is selected.
  • the first selection module 65 may be specifically configured as:
  • the point closest to the centroid among the points with the same value of the Morton code shifted to the right by K is determined as the selected point.
  • the first selection module 65 may be specifically configured as:
  • a number of selected points are selected from the points with the same value of the Morton code shifted by K bits to the right.
  • the first selection module 65 may be specifically configured as:
  • a point is selected every second preset threshold according to the sorting result.
  • the first determining module 62 may also be configured to:
  • Each group of point clouds is determined as the input point cloud of the first iteration.
  • FIG. 7 is a schematic structural diagram of an optional decoder provided in an embodiment of the application. As shown in FIG. 7, the decoder may include:
  • the second calculation module 71 is configured to obtain the point cloud to be divided, and calculate the Morton code of the point cloud to be divided;
  • the third determining module 72 is configured to determine the point cloud to be divided as the input point cloud of the first iteration
  • the second judging module 73 is configured to judge whether the number of points in the input point cloud of the i-th iteration is equal to 0 when the i-th iteration is performed; where i is a positive integer whose initial value is equal to 1;
  • the second right shift module 74 is configured to shift the Morton code of the input point cloud of the i-th iteration to the right by K bits when the number of points in the input point cloud of the i-th iteration is not equal to 0; where K is Positive integer
  • the second selection module 75 is configured to select a point from the points with the same value of the Morton code shifted by K bits to the right;
  • the second division module 76 is configured to use the selected points to form the i-th detailed division LOD layer, and determine the remaining points in the i-th iteration of the input point cloud except for the selected points as the i+1-th iteration
  • the input point cloud of i is updated to i+1, and the first judgment module 63 is returned to execute when the i-th iteration is performed, it is judged whether the number of points in the input point cloud of the i-th iteration is equal to 0;
  • the fourth determining module 77 is configured to determine the first LOD layer to the i-1th LOD layer as the LOD after the point cloud to be divided is divided when the number of points in the input point cloud of the i-th iteration is equal to 0 Floor.
  • the third determining module 72 may also be configured as:
  • the third determining module 72 may also be configured to:
  • the Morton code of the input point cloud of the i-th iteration is shifted to the right by K bits, according to the mid-point of the input point cloud of the i-th iteration
  • the number of and the distribution of the input point cloud of the i-th iteration determine the value of K.
  • the decoder can also be configured as:
  • the divided LOD layer, the first LOD layer to the i-1th LOD layer are determined as: the LOD layer after the point cloud to be divided is divided.
  • the second selection module 75 may be specifically configured as:
  • the first point sorted is selected.
  • the second selection module 75 may be specifically configured as:
  • the point closest to the centroid among the points with the same value of the Morton code shifted to the right by K is determined as the selected point.
  • the second selection module 75 may be specifically configured as:
  • a number of selected points are selected from the points with the same value of the Morton code shifted by K bits to the right.
  • the second selection module 75 may be specifically configured as:
  • a point is selected every second preset threshold according to the sorting result.
  • the third determining module 72 may also be configured as:
  • Each group of point clouds is determined as the input point cloud of the first iteration.
  • FIG. 8 is a schematic structural diagram of another optional encoder proposed in an embodiment of the application.
  • the encoder 800 proposed in an embodiment of the application may further include a processor 81 and a processor 81 stored therein.
  • the storage medium 82 relies on the processor 81 to perform operations through the communication bus 83.
  • the instructions are executed by the processor 81, the division method described in one or more embodiments is executed.
  • the various components in the encoder 800 are coupled together through the communication bus 83.
  • the communication bus 83 is used to implement connection and communication between these components.
  • the communication bus 83 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the communication bus 83 in FIG. 8.
  • FIG. 9 is a schematic structural diagram of another optional decoder proposed in an embodiment of the application.
  • the decoder 900 proposed in an embodiment of the present application may further include a processor 91 and a processor 91 stored therein.
  • the storage medium 92 relies on the processor 91 to perform operations through the communication bus 93.
  • the instructions are executed by the processor 91, the division method described in one or more embodiments is executed.
  • the various components in the decoder 900 are coupled together through the communication bus 93.
  • the communication bus 93 is used to implement connection and communication between these components.
  • the communication bus 93 also includes a power bus, a control bus, and a status signal bus.
  • various buses are marked as the communication bus 93 in FIG. 9.
  • An embodiment of the present application provides a computer storage medium that stores executable instructions.
  • the processor executes the instructions described in the one or more embodiments above. Division method.
  • the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • DDRSDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM, ESDRAM Synchronous Link Dynamic Random Access Memory
  • Synchlink DRAM Synchronous Link Dynamic Random Access Memory
  • DRRAM Direct Rambus RAM
  • the processor may be an integrated circuit chip with signal processing capabilities.
  • each step of the above method can be completed by an integrated logic circuit of hardware in the processor or instructions in the form of software.
  • the above-mentioned processor may be a general-purpose processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (ASIC), a ready-made programmable gate array (Field Programmable Gate Array, FPGA) or other Programming logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC application specific integrated circuit
  • FPGA ready-made programmable gate array
  • the methods, steps, and logical block diagrams disclosed in the embodiments of the present application can be implemented or executed.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present application can be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field, such as random access memory, flash memory, read-only memory, programmable read-only memory, or electrically erasable programmable memory, registers.
  • the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
  • the embodiments described herein can be implemented by hardware, software, firmware, middleware, microcode, or a combination thereof.
  • the processing unit can be implemented in one or more application specific integrated circuits (ASIC), digital signal processor (Digital Signal Processing, DSP), digital signal processing equipment (DSP Device, DSPD), programmable Logic Device (Programmable Logic Device, PLD), Field-Programmable Gate Array (Field-Programmable Gate Array, FPGA), general-purpose processors, controllers, microcontrollers, microprocessors, and others for performing the functions described in this application Electronic unit or its combination.
  • ASIC application specific integrated circuits
  • DSP Digital Signal Processing
  • DSP Device digital signal processing equipment
  • PLD programmable Logic Device
  • PLD Field-Programmable Gate Array
  • FPGA Field-Programmable Gate Array
  • the technology described herein can be implemented by modules (such as procedures, functions, etc.) that perform the functions described herein.
  • the software codes can be stored in the memory and executed by the processor.
  • the memory can be implemented in the processor or external to the processor.
  • the technical solution of this application essentially or the part that contributes to the existing technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium (such as ROM/RAM, magnetic disk, The optical disc) includes several instructions to enable a terminal (which may be a mobile phone, a computer, a server, or a network device, etc.) to execute the method described in each embodiment of the present application.
  • a terminal which may be a mobile phone, a computer, a server, or a network device, etc.
  • the embodiment of the application provides a dividing method, an encoder, a decoder, and a computer storage medium to obtain a point cloud to be divided, calculate the Morton code of the point cloud to be divided, and determine the point cloud to be divided as the first iteration Input point cloud, when the i-th iteration is performed, judge whether the number of points in the input point cloud of the i-th iteration is equal to 0, and when the number of points in the input point cloud of the i-th iteration is not equal to 0, the The Morton code of the input point cloud of the i-th iteration is shifted to the right by K bits.
  • the Morton code is selected as a point, and the selected points are used to form the i-th LOD layer.
  • the remaining points in the input point cloud of the i iteration except the selected points are determined as the input point cloud of the i+1 iteration, i is updated to i+1, and the execution is returned.
  • the judgment Whether the number of points in the input point cloud of the i-th iteration is equal to 0, when the number of points in the input point cloud of the i-th iteration is equal to 0, determine the first LOD layer to the i-1th LOD layer For the divided LOD layer of the point cloud to be divided, the accuracy of neighbor node prediction based on the LOD layer is improved, thereby improving the coding and decoding efficiency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例公开了一种划分方法、编码器、解码器以及计算机存储介质,该方法包括:计算获取到的待划分点云的莫顿码,将待划分的点云确定为第1次迭代的输入点云,当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当不等于0时,将第i次迭代的输入点云的莫顿码右移K位,从右移K位后莫顿码的值相等的点中,选取一个点,利用选取出的点组成第i个LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层。

Description

划分方法、编码器、解码器以及计算机存储介质 技术领域
本申请实施例涉及基于几何的点云压缩(Geometry-based Point Cloud Compression,G-PCC)的编解码中细节层次(Level of detail,LOD)的划分技术,尤其涉及一种划分方法、编码器、解码器以及计算机存储介质。
背景技术
在G-PCC的编码器框架中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的,先进行几何编码,在几何编码完成后,对几何信息进行重建;目前,属性编码主要针对颜色信息进行,在进行属性编码时,首先将颜色信息从RGB颜色空间转换到YUV颜色空间,然后利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码中,主要有两种变换方法,一是基于LOD划分的提升变换,目前LOD划分主要分为基于距离进行划分LOD和基于固定采样率进行划分LOD;二是直接对属性进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)。
由于对点云基于距离进行LOD划分的计算复杂度较高,为了降低计算复杂度,在基于距离进行LOD划分的基础上使用在当前点所对应的莫顿码的一个范围内进行查找的方法来划分LOD,然而,在视频编解码中,在对LOD划分完成之后,需要使用LOD的划分结构对邻居节点属性进行预测,然而,现有的LOD的划分方法得到的LOD层导致对邻居节点的预测精准度较低。
发明内容
本申请实施例提供一种划分方法、编码器、解码器以及计算机存储介质,能够提高对邻居节点的预测精准度,提高编解码速率。
本申请实施例的技术方案可以如下实现:
第一方面,本申请实施例提供一种划分方法,所述方法包括:
获取待划分点云,计算所述待划分点云的莫顿码;
将所述待划分的点云确定为第1次迭代的输入点云;
当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位,其中,K为正整数;
从右移K位后莫顿码的值相等的点中,选取一个点;
利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行所述当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
第二方面,本申请实施例提供一种编码器,所述编码器包括:
第一计算模块,配置为获取待划分点云,计算所述待划分点云的莫顿码;
第一确定模块,配置为将所述待划分的点云确定为第1次迭代的输入点云;
第一判断模块,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
第一右移模块,配置为当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位,其中,K为正整数;
第一选取模块,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
第一划分模块,配置为利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回所述第一判断模块执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
第二确定模块,配置为当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
第三方面,本申请实施例提供一种解码器,所述解码器包括:
第二计算模块,配置为获取待划分点云,计算所述待划分点云的莫顿码;
第三确定模块,配置为将所述待划分的点云确定为第1次迭代的输入点云;
第二判断模块,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
第二右移模块,配置为当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
第二选取模块,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
第二划分模块,配置为利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回所述第二判断模块执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
第四确定模块,配置为当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
第四方面,本申请实施例提供一种编码器,所述编码器包括:
处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述一个或多个实施例所述的划分方法。
第五方面,本申请实施例提供一种编码器,所述编码器包括:
处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述一个或多个实施例所述的划分方法。
第六方面,本申请实施例提供一种计算机可读存储介质,其中,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行上述一个或多个实施例所述的划分方法。
本申请实施例提供了一种划分方法、编码器、解码器以及计算机存储介质,该方法可以包括:获取待划分点云,计算待划分点云的莫顿码,将待划分的点云确定为第1次迭代的输入点云,当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,其中,i为初始值等于1的正整数,当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位,其中,K为正整数,从右移K位后莫 顿码的值相等的点中,选取一个点,利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层;也就是说,在本申请实施例中,通过迭代的方法,将每次迭代的输入点云的莫顿码右移K位,再从右移K位后的莫顿码的值相等的点中选取一个点,将选取出的点组成本次迭代形成的LOD层,通过该划分方法,由于处于莫顿码相邻的点在几何空间中往往处于相邻的位置,那么通过将莫顿码右移,基于右移后的莫顿码选取点,使得在LOD划分的过程中,能够将点云的分布和点云之间的空间距离进行综合考虑,进而使得得到的LOD层的划分是基于点云的分布和点云之间的空间距离的,这样,提高了基于LOD层进行邻居节点预测的精准度,从而提高了编解码的效率。
附图说明
图1为G-PCC编码的流程框图;
图2为基于距离划分LOD过程示意图;
图3为基于莫顿序划分LOD过程示意图;
图4为本申请实施例提供的一种可选的划分方法的流程示意图;
图5为本申请实施例提供的一种可选的划分方法的实例的流程示意图;
图6为本申请实施例提供的一种可选的编码器的结构示意图;
图7为本申请实施例提供的一种可选的解码器的结构示意图;
图8为本申请实施例提供的另一种可选的编码器的结构示意图;
图9为本申请实施例提供的另一种可选的解码器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
在本申请实施例中,在点云G-PCC编码器框架中,将输入三维图像模型的点云进行slice划分后,对每一个slice进行独立编码。
图1为G-PCC编码的流程框图,如图1所示,应用于点云编码器中,针对待编码的点云数据,先通过slice划分,将点云数据划分为多个slice。在每一个slice中,点云的几何信息和每个点云所对应的属性信息是分开进行编码的。在几何编码过程中,对几何信息进行坐标转换,使点云全都包含在一个bounding box(包围盒)中,然后再进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点云的几何信息相同,于是在基于参数来决定是否移除重复点,量化和移除重复点这一过程又被称为体素化过程。接着对bounding box进行八叉树划分。在基于八叉树的几何信息编码流程中,将包围盒八等分为8个子立方体,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,对叶子结点中的点进行算术编码,生成二进制的几何比特流,即几何码流。在基于trisoup(triangle soup,三角面片集)的几何信息编码过程中,同样也要先进行八叉树划分,但区别于基于八叉 树的几何信息编码,该trisoup不需要将点云逐级划分到边长为1x1x1的单位立方体,而是划分到block(子块)边长为W时停止划分,基于每个block中点云的分布所形成的表面,得到该表面与block的十二条边所产生的至多十二个vertex(交点),对vertex进行算术编码(基于交点进行表面拟合),生成二进制的几何比特流,即几何码流。Vertex还用于在几何重建的过程的实现,而重建的集合信息在对点云的属性编码时使用。
在属性编码过程中,几何编码完成,对几何信息进行重建后,进行颜色转换,将颜色信息(即属性信息)从RGB颜色空间转换到YUV颜色空间。然后,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。在颜色信息编码过程中,主要有两种变换方法,一是依赖于LOD划分的基于距离的提升变换,二是RAHT的变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数,最后对系数进行量化(即量化系数),最后,将经过八叉树划分及表面拟合的几何编码数据与量化系数处理属性编码数据进行slice合成后,依次编码每个block的vertex坐标(即算数编码),生成二进制的属性比特流,即属性码流。
在相关技术领域中有提到针对Category3序列点云在进行属性变换时采用基于距离的方法进行划分LOD。该基于距离进行划分LOD的方法被用于TMC3V0编码器中和TMC13属性变换lifting中。基于距离进行划分LOD的方法还被加入到TMC13中predcting属性变换中,也即LOD划分被应用于点云属性变换Predicting和lifting两种方式中。
基于距离进行LOD划分具体实现如下:
LOD划分是通过一组定义的距离阈值d l,其中,l=0,…,L-1,将输入的点云划分为不同的细化级别R l,其中,l=0,…,L-1,即将点云中的点划分到不同的集合R l中,距离阈值d l需要满足以下两个条件:
d l<d l-1   (1)
d L-1=0   (2)
具体来说,LOD的划分过程是在点云几何重建之后,这时候点云的几何坐标信息是已知的,划分LOD的过程同时应用在点云的编码端和解码端,具体过程如下:
1)首先,将所有的点云置于“未访问过”的点集,并且初始化“访问过”的点集V为空集;
2)该算法过程是通过不断迭代来划分LOD层,第l次迭代所对应的细化级别R l生成过程如下所示:
a.该算法通过迭代遍历所有的点;
b.如果当前的点已经遍历过,则忽略该点;
c.否则,分别计算该点到集合V中每个点的距离,记其中最近的距离为D;其中,第1次迭代时将第一个点云加入到集合V中;
d.如果距离D大于等于阈值dl,则将该点添加到细化级别R l和集合V中;
e.重复c-d直至所有的点都被遍历;
3)第l个LOD集合,即LOD l是通过将细化级别R 0,R 1,…,R 1中的点进行合并得到;
4)该过程进行不断地迭代直到所有的LOD层生成或者所有的点都被遍历过。
图2为基于距离划分LOD过程示意图,如图2所示,本次待划分点云包括点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9,其中,原始点云顺序为:P0,P1,P2,P3,P4,P5,P6,P7,P8和P9,采用上述基于距离划分LOD的方法得到的LOD0为P4,P5,P0和P1,LOD1为P4,P5,P0,P1,P3,P2和P6,LOD2为P4,P5,P0,P1,P3,P2,P6,P7,P8和P9。
相关技术中还提到一种降低LOD生成计算复杂度的方案,主要是基于莫顿序进行划分LOD,其中,莫顿码实现了一维与二维(或多维)的转换,它通过交叉存储两个数的位产生一个数,该方案相比原始搜索全部的点进行划分LOD的计算复杂度降低很多,主要步骤如下:
首先,假设变量P i,其中,i=1,…,N,P i表示输入点云中的点,变量M i,其中,i=1,…,N,M i为与每个点相关的莫顿码,计算莫顿码的具体方法描述如下所示,每个点的三维坐标的分量x、y、z用d比特二进制数表示为:
Figure PCTCN2019109653-appb-000001
Figure PCTCN2019109653-appb-000002
Figure PCTCN2019109653-appb-000003
其中,x l,y l,z l∈{0,1},且x l,y l,z l分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如下所示:
Figure PCTCN2019109653-appb-000004
其中,m l'∈{0,1}分别是M的最高位(l'=1)到最低位(l'=3d)的值,在得到点云中每个点的莫顿码M后,将点云中的点按照莫顿码由小到大的顺序进行排列。
D0(表示初始距离的阈值)和ρ(表示相邻LOD层划分时的距离阈值比)分别为用户自定义的初始参数,并且ρ>1。设I表示点云中所有点的索引。在第k次迭代时LOD k中的点会从LOD 0到第LOD k-1层中查找最近邻居,即距离最近的点。该算法的具体过程如下:
1)首先初始化划分距离阈值为D=D 0
2)在第k次迭代时,k=0,1…N-1(N为LOD划分的总层数),L(k)保存属于第k层LOD中的点,O(k)保存比LOD k层更高细化级别的点集,其中L(k)和O(k)的计算过程如下:
a.首先,O(k)和L(k)被初始化为空集;
b.每一次迭代按照I中保存点的索引顺序进行遍历。每一次遍历都会计算当前点到集合O(k)中一定范围内所有点的几何距离。基于I中当前点所对应的莫顿码,在集合O(k)中进行查找第一个大于当前点所对应莫顿码点的索引,然后在该索引的一个搜索范围SR1内进行查找(SR1代表基于莫顿码的搜索范围,一般为8,16,64)。如果在该范围内查找到与当前点的距离小于阈值d l的点,就将当前点加入到集合L(k)中,否则加入到集合O(k)中;
3)在每一次迭代的过程中,集合L(k)和O(k)分别进行计算,并且O(k)中的点会被用来预测集合L(k)中点。设集合R(k)=L(k)\L(k-1),即R(k)代表LOD k-1与LOD k集合相差部分的点集。对位于集合R(k)中的点会在集合O(k)中进行查找最近的h个预测邻居(目前h设置为3),查找最近邻居的具体过程如下:
a.对于集合R(k)中的点P i,该点所对应的莫顿码为M i
b.在集合O(k)查找第一个大于当前点Pi所对应的莫顿码M i的点的索引j;
c.基于索引j在集合O(k)中的一个搜索范围[j-SR2,j+SR2]内查找当前点P i的最近邻居节点(SR2代表一个搜索范围,一般为8/16/32/64)。
4)不断地进行迭代,直至I中所有的点遍历完为止。
图3为基于莫顿序划分LOD过程示意图,如图3所示,本次待划分点云包括点P0,P1,P2,P3,P4,P5,P6,P7,P8和P9,其中,原始点云顺序为:P0,P1,P2,P3,P4,P5,P6,P7,P8和P9,基于莫顿序升序排列的点为:P4,P1,P9,P5,P0,P6,P8,P2,P7和P3,采用上述基于莫顿序划分LOD的方法得到的LOD0为P4,P5,P0和P1,LOD1为P4,P5,P0,P1,P3,P2和P6,LOD2为P4,P5,P0,P1,P3,P2,P6,P7,P8和P9。
基于距离进行划分LOD的方法使用在当前点所对应的莫顿码的一个范围内进行查找的方法,计算该范围内的点到当前点的空间几何距离并与阈值进行比较,直至所有点到当前点的距离比该阈值都大时,将该点加入到当前LOD层中,否则到下一层时再进行划分。经过测试得到的测试数据,基于距离划分LOD的方法所用的时间占据总体编码时间的70%~80%左右,显然,计算复杂度较高。
并且,在现点云属性变换Predicting和lifting之前,对点云基于距离划分LOD。由于空间中相邻的点属性之间存在很大的相关性,因此,可以使用基于LOD的结构对邻居节点属性的进行预测,从而达到去除相邻点之间属性冗余的目的。尽管如此,由于不同点云具有不同的空间分布,使得不同点云的物体密度不同,因此,现有技术在基于距离的划分LOD过程中,基于点云的均匀分布(相当于所划分距离阈值相等)进行搜索得到的邻居点不够精准,导致预测残差较大,编码效率较低。
由于对点云基于距离进行LOD划分的计算复杂度较高,为了降低计算复杂度,在基于距离进行LOD划分的基础上使用在当前点所对应的莫顿码的一个范围内进行查找的方法来划分LOD,然而,在视频编解码中,在对LOD划分完成之后,需要使用LOD的划分结构对邻居节点属性进行预测,由于不同点云具有不同的空间分布,使得不同点云的物体密度不同,所以,通过上述划分方法所得到的LOD的划分结构预测邻居节点不够精准,从而导致预测残差较大,影响编解码的效率;由此可以看出,现有的LOD的划分方法得到的LOD层导致对邻居节点的预测精准度较低。
为了提高编解码的效率,需要提高对邻居节点的预测精度,为了提高对邻居节点的预测精度,本申请实施例提供一种划分方法,图4为本申请实施例提供的一种可选的划分方法的流程示意图,如图4所示,该方法可以应用于编码器或者解码器中,该划分方法可以包括:
S401:获取待划分点云,计算待划分点云的莫顿码;
本申请实施例提供的划分方法是对上述lifting和Predicting属性变换中LOD的生成过程进行改进,用于编码器和解码器,该方法在进行lifting或者Predicting变换之前先使用该改进技术进行LOD结构的划分,应用于图1中生成LOD的框图中。
这里,在获取到待划分点云之后,先计算待划分点云的莫顿码,在后续的迭代计算中,利用莫顿码可以知晓点与点之间的空间位置关系,有利于在划分完LOD层之后预测邻居节点。
S402:将待划分的点云确定为第1次迭代的输入点云;
具体来说,为了将待划分的点云划分成LOD层,这里,采用了迭代方法进行划分,首先,获取待划分点云,其中,待划分点云中包括至少两个点,例如10个点,将待划分点云确定为第1次迭代的输入点云。
针对待划分点云中点的个数较多的情况下,为了更好更快地完成对待划分点云进行LOD的划分,在一种可选的实施例中,在S402之前,该方法可以包括:
将待划分点云的莫顿码右移N位,并将右移N位后的莫顿码的值相等的点组成一组点云,N为正整数;
将每组点云分别确定为第1次迭代的输入点云。
也就是说,当待划分点云中带你的个数较多时,不采用直接将待划分点云作为第1次迭代的输入点云,而是先计算待划分点云的莫顿码,并将莫顿码右移N位,这样,针对右移N位后的莫顿码的值相等的点来说,它们之间在空间上相邻,所以将每组右移N位后的莫顿码的值相等的点组成一组点云,将每组点云分别确定为第1次迭代的输入点云,这样,将待划分点云分成组,将每组点云作为第1次迭代的输入点云分贝进行迭代运算,最终得到每组点云划分后的LOD层,从而得到待划分点云划分后的LOD层。
S403:当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
其中,在本申请实施例中,迭代次数用i来表示,i为初始值等于1的正整数;
在S403中,在进行每次迭代时,先判断每次迭代的输入点云中点的个数是否等于0,也就是说,通过迭代是否已经将待划分点云遍历完。如果遍历完成就结束迭代过程,如果还没有遍历完成,需要继续进行迭代,以将待划分点云划分至LOD层中。
S404:当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位;
经过S403的判断,当第i次迭代的输入点云中点的个数不等于0时,说明之前的迭代还没有遍历完所有的点,所以,需要执行本次迭代,具体来说,可以根据莫顿码从小到大的顺序点进行排序,以更好的通过莫顿码得到点之间的空间关系。
其中,K为正整数,这里的K的取值可以通过训练得到的固定值,也可以是通过以下任意一种方式获得的值,这里,本申请实施例对此不作具体限定。
为了确定出K的值,在一种可选的实施例中,S404之前,该方法还可以包括:
根据待划分的点云的分布,确定K的值。
具体来说,根据待划分的点云的分布来确定K的值,这样,在每次迭代中都将莫顿码右移K位,使得在莫顿码右移时考虑到点云的空间分布,能够达到更好的预测效果。
为了确定出K的值,在一种可选的实施例中,当i大于等于第一预设阈值时,S404之前,该方法还可以包括:
根据第i次迭代的输入点云中点的个数和第i次迭代的输入点云的分布,确定K的值。
这里,由于每次迭代均会将部分点云划分至对应的LOD层中,所以,随着迭代次数的增加,剩余的点越来越少,那么,每次迭代的输入点云的分布也在不断变化,为了实现更好的预测效果,这里,每次迭代的K值可以根据每次迭代的输入点云中点的个数和每次迭代的输入点云的分布来确定,这样,使得在每次迭代时莫顿码的右移位数考虑到点云的个数和点云的空间分布,能够达到更好的预测效果。
S405:从右移K位后莫顿码的值相等的点中,选取一个点;
在将莫顿码右移K位之后,为了划分出LOD层,先找到右移K位后的莫顿码的值相等的点,可以得到至少一组右移K位后的莫顿码的值相等的点,然后从右移K位后莫顿码的值相等的点中,选取一个点,其中,可以选取其中任意一个点,也可以选取其中一个指定的点,这里,本申请实施例对此不作具体限定。
为了得到划分后的LOD层,以提高对邻居节点的预测精度,在一种可选的实施例中,S405可以包括:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,选取出排序在第一个的点。
这里,对莫顿码按照从小到大的顺序进行排序,然后在找出右移K位后的莫顿码的值相等的点,得到至少一组右移K位后的莫顿码的值相等的点,然后从每组中选取第一 个点,也就是右移K位后的莫顿码的值相等的点中在原始点云顺序中排在最前面的点。
为了得到划分后的LOD层,以提高对邻居节点的预测精度,在一种可选的实施例中,S405可以包括:
确定右移K位后的莫顿码的值相等的点的质心;
将右移K位后的莫顿码的值相等的点中距离质心最近的点,确定为选取出的一个点。
具体来说,先确定出右移K位后的莫顿码的值相等的点的质心,该质心是通过本次迭代的输入点云中每个点的三维坐标计算出来的,在得到质心之后,然后计算右移K位后的莫顿码的值相等的点中距离质心最近的点,将该点选取出来。
为了得到划分后的LOD层,以提高对邻居节点的预测精度,除了采用上述S405来选取点之外,在一种可选的实施例中,在S404之后,在S406之前,该方法还可以包括:
根据右移K位后的莫顿码的值相等的点的个数,确定对应的选取个数;
根据对应的选取个数,从右移K位后的莫顿码的值相等的点中选取出选取个数个点。
具体来说,可以从右移K位后的莫顿码的值相等的点中选取出不止一个点,可以先根据右移K位后的莫顿码的值相等的点的个数,确定对应的选取个数,例如,右移K位后的莫顿码的值相等的点的个数有10个,8个,6个,4个等等,确定对应的选取个数可以按照莫顿码的值相等的点的个数来确定,例如,针对右移K位后的莫顿码的值相等的点的个数为10个的,对应的选取个数为5个,针对右移K位后的莫顿码的值相等的点的个数为8个的,对应的选取个数为4个,针对右移K位后的莫顿码的值相等的点的个数为6个的,对应的选取个数为3个,针对右移K位后的莫顿码的值相等的点的个数为4个的,对应的选取个数为2个,既可以按照正比例关系来确定对应的选取个数。
然后,根据选取个数从右移K位后的莫顿码的值相等的点中选取出选取个数个点,其中,可以任意选取出选取个数个点,也可以按照指定的方式选取出选取个数个点,这里,本申请实施例对此不作具体限定。
为了得到划分后的LOD层,以提高对邻居节点的预测精度,除了采用上述S405来选取点之外,在一种可选的实施例中,在S404之后,在S406之前,该方法还可以包括:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,按照排序结果,每隔第二预设阈值选取一个点。
具体来说,先将莫顿码按照从小到大的顺序进行排序,得到第i次迭代的输入点云的排序结果,然后可以找出右移K位后的莫顿码的值相等的点,由于每组右移K位后的莫顿码的值相等的点也是按照排序结果排列的,所以,这里按照每隔第二预设阈值来选取一个点,以得到选取出的点。
其中,上述第二预设阈值为根据需求设置好的值。
S406:利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行S403;
在得到选取出的点之后,用选取出的点组成本次迭代的LOD层,即第i个LOD层,从而经过本次迭代将本次迭代的输入点云中的部分点划分至LOD层,并将本次迭代的输入点云中除了选取出的点外剩余的点确定为第i+1次迭代的输入点云,并将i更新为i+1,重新执行S403。
可见,在本申请实施例中,通过计算第i次迭代的输入点云的莫顿码,并右移适当的位数,可以将空间上相邻的点找出来,在形成LOD层时,从每组相邻的点中选取出一个或者多个点,这样,使得划分后的LOD层考虑的点云之间的空间分布,有利于提高邻居节点的预测精度。
S407:当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层。
另外,当第i次迭代的输入点云中的点的个数等于0时,说明此时待划分点云已经全部遍历完成,所以,可以结束迭代,将得到的第1个LOD层至第i-1个LOD层作为待划分点云划分后的LOD层。
另外,为了划分得到LOD层,在一种可选的实施例中,当i大于等于第一预设阈值时,在利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1之后,该方法还可以包括:
根据第i次迭代的输入点云,调用预设的基于距离划分LOD的算法进行划分得到LOD层;
将划分得到的LOD层、第1个LOD层至第i-1个LOD层确定为:待划分点云划分后的LOD层。
也就是说,采用本申请实施例的迭代方法时,当迭代次数i大于等于第一预设阈值时,针对剩余的未划分的点,可以基于距离划分LOD的算法,或者基于固定采样率划分LOD的算法,进行划分得到LOD层;这里,本申请实施例对此不作具体限定。
当迭代次数i大于等于第一预设阈值时,在完成本次迭代的划分之后,迭代次数i+1之后,根据第i次迭代的输入点云,可以调用预设的基于距离划分LOD的算法,或者调用预设的基于固定采样率划分LOD的算法,对第i次迭代的输入点云进行划分,得到LOD层,最终,将之前得到的第1个LOD层至第i-1个LOD层,和划分得到的LOD层作为待划分点云划分后的LOD层。
下面举实例来对上述一个或多个实施例所述的划分方法进行说明。
图5为本申请实施例提供的一种可选的划分方法的实例的流程示意图,如图5所示,该划分方法可以应用于编码器中,也可以应用于解码器中,本实例以应用于编码器为例,该划分方法可以包括:
S501:针对获取到的待编码点云,计算莫顿码;
具体来说,设待编码点云包含N个点,每个点表示为P[i],计算每个点P[i]所对应的莫顿码为M[i],i=0,1…N-1,并且对待编码点云的莫顿码按照升序进行排列;
S502:对莫顿码进行右移K位;
具体来说,通过对待编码点云中每个点的莫顿码右移K位,那么处于空间中相邻位置的点所对应的莫顿码就会相等,因为处于莫顿码相邻的点在几何空间中往往处于相邻的位置,正是利用莫顿码的这个特点,通过对空间中待编码点云中所有点对应的莫顿码右移K位之后,将空间中相邻的点聚在一起;
S503:对莫顿码值相等的点集进行采样;
具体来说,对S502中得到的右移K位后的莫顿码的值相等的点进行采样,通过对聚集在一起的点集每次迭代取一个点,通过利用预测点的属性对被预测点的属性基于空间距离加权平均得到被预测点的重建属性值,其次,利用重建属性值与原始属性值得到被预测点的属性残差,利用重建属性值和预测残差来进行邻居点的属性预测,每次采样完结束后都会进行预测,然后综合每次的预测得到一个最终的预测,从而实现预测待编码点云中剩余的邻居点属性;
S504:将采样点作为当前LOD层中的点;
具体来说,将S503得到的采样点作为当前LOD层中的点,其他剩余的点作为比当前LOD层更高层的点;在实际应用中,这里,可以将右移K位后的莫顿码的值相等的点中第一个点作为采样点。
S505:判断剩余的点是否全部遍历或者是否全部划分完;如果是,则结束LOD层的划分,否则返回执行S502,以继续进行划分;
在继续划分中,在待编码点云的中莫顿码右移K位的基础上,再进行右移K位,重复上面的S502至S505,直至划分完所有的LOD或者遍历完所有的点。
通过上述实例,在基于莫顿码右移方法进行划分LOD时,每次仅仅需要对原始点云所对应的莫顿码右移一定位数,然后对右移之后莫顿码相等的点进行采样,该方法划分LOD的时间仅仅占编码时间的20%左右,所以,基于莫顿序右移划分LOD的方法相比原始基于距离划分LOD的方法时间复杂度降低很多,大约是前者的1/4~1/3左右。
本申请实施例中利用点云空间分布以及点云空间距离划分LOD,通过莫顿码右移进行LOD的划分,不仅可以将几何空间的距离进行考虑,并且会将点云的分布进行综合考虑,过莫顿序右移方法进行划分时,会在点云较为密集的地方减少采样点数目,同时在较为稀疏的地方增加采样点数目。在较为稀疏的部分,由于点和点之间的空间距离较远,在进行预测的时候相邻点之间的属性残差一般会很大,如果还是基于固定距离进行采样,这样就会导致最后基于邻居进行属性预测得到的预测残差很大,从而导致压缩之后的属性比特流很大,并且会降低重建之后属性的性能,在空间中稀疏的部分,由于点与点之间的空间几何距离较大,相邻点之间的对应莫顿码值相差很大,所以在右移莫顿码时,该部分会有很少的点聚为一类,从而会得到较多的采样点,这样在基于邻居属性进行预测时会相比原始仅仅考虑几何空间距离的方案有更好的预测效果。
本申请实施例通过莫顿码进行右移一定位数得到不同数目的点集,然后在每个点集中用采样点来预测邻居点的属性。通过该方案可以将点云的分布和点云之间的空间距离进行综合考虑,进而提升基于邻居预测属性的效果。
本申请实施例在基本不影响性能的前提下,可以提高属性部分的重建质量,并且可以降低属性的编解码时间和计算复杂度,如下表1所示:
表1
Figure PCTCN2019109653-appb-000005
由上述表1可知,重建点云的BD-rate也有较为明显的提升,峰值信噪比(PSNR,Peak Signal to Noise Ratio)是一种图像评价的客观标准,PSNR越大则图像的质量越好,BD-rate是用来衡量性能的好坏的参数,BD-rate为负时表示性能变好,在此基础上BD-rate的绝对值越大,则性能的增益越大,且通过本申请实施例提供的划分方法降低了划分LOD所需的时间,从而降低了编解码的时间。
本申请实施例提供了一种划分方法,该方法可以包括:获取待划分点云,计算待划分点云的莫顿码,将待划分的点云确定为第1次迭代的输入点云,当进行第i次迭代时, 判断第i次迭代的输入点云中点的个数是否等于0,其中,i为初始值等于1的正整数,当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代中输入点云的莫顿码右移K位,其中,K为正整数,从右移K位后莫顿码的值相等的点中,选取一个点,利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层;也就是说,在本申请实施例中,通过迭代的方法,将每次迭代的输入点云的莫顿码右移K位,再从右移K位后的莫顿码的值相等的点中选取一个点,将选取出的点组成本次迭代形成的LOD层,通过该划分方法,由于处于莫顿码相邻的点在几何空间中往往处于相邻的位置,那么通过将莫顿码右移,基于右移后的莫顿码选取点,使得在LOD划分的过程中,能够将点云的分布和点云之间的空间距离进行综合考虑,进而使得得到的LOD层的划分是基于点云的分布和点云之间的空间距离的,这样,提高了基于LOD层进行邻居节点预测的精准度,从而提高了编解码的效率。
实施例二
基于同一发明构思下,本申请实施例提供一种编码器,图6为本申请实施例提供的一种可选的编码器的结构示意图,如图6所示,该编码器可以包括:
第一计算模块61,配置为获取待划分点云,计算待划分点云的莫顿码;
第一确定模块62,配置为将待划分的点云确定为第1次迭代的输入点云;
第一判断模块63,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
第一右移模块64,配置为当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
第一选取模块65,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
第一划分模块66,配置为利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回第一判断模块63执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
第二确定模块67,配置为当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层。
在一种可选的实施例中,第一确定模块62还可以配置为:
在当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位之前,根据待划分的点云的分布,确定K的值。
在一种可选的实施例中,当i大于等于第一预设阈值时,第一确定模块62还可以配置为:
在当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位之前,根据第i次迭代的输入点云中点的个数和第i次迭代的输入点云的分布,确定K的值。
在一种可选的实施例中,当i大于等于第一预设阈值时,
在利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1之后,该编码器还可以配置为:
根据第i次迭代的输入点云,调用预设的基于距离划分LOD的算法进行划分得到LOD层;
将划分得到的LOD层、第1个LOD层至第i-1个LOD层确定为:待划分点云划分后的LOD层。
在一种可选的实施例中,第一选取模块65具体可以配置为:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,选取出排序在第一个的点。
在一种可选的实施例中,第一选取模块65具体可以配置为:
确定右移K位后的莫顿码的值相等的点的质心;
将右移K位后的莫顿码的值相等的点中距离质心最近的点,确定为选取出的一个点。
在一种可选的实施例中,第一选取模块65具体可以配置为:
根据右移K位后的莫顿码的值相等的点的个数,确定对应的选取个数;
根据对应的选取个数,从右移K位后的莫顿码的值相等的点中选取出选取个数个点。
在一种可选的实施例中,第一选取模块65具体可以配置为:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,按照排序结果,每隔第二预设阈值选取一个点。
在一种可选的实施例中,第一确定模块62还可以配置为:
将待划分点云的莫顿码右移N位,并将右移N位后的莫顿码的值相等的点组成一组点云;其中,N为正整数;
将每组点云作分别确定为第1次迭代的输入点云。
本申请实施例提供一种解码器,图7为本申请实施例提供的一种可选的解码器的结构示意图,如图7所示,该解码器可以包括:
第二计算模块71,配置为获取待划分点云,计算待划分点云的莫顿码;
第三确定模块72,配置为将待划分的点云确定为第1次迭代的输入点云;
第二判断模块73,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
第二右移模块74,配置为当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
第二选取模块75,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
第二划分模块76,配置为利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回第一判断模块63执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
第四确定模块77,配置为当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层。
在一种可选的实施例中,第三确定模块72还可以配置为:
在当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位之前,根据待划分的点云的分布,确定K的值。
在一种可选的实施例中,当i大于等于第一预设阈值时,第三确定模块72还可以配置为:
在当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位之前,根据第i次迭代的输入点云中点的个数和第i次迭代的输入点云的分布,确定K的值。
在一种可选的实施例中,当i大于等于第一预设阈值时,
在利用选取出的点组成第i个细节划分LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1之后,该解码器还可以配置为:
根据第i次迭代的输入点云,调用预设的基于距离划分LOD的算法进行划分得到LOD层;
将划分得到的LOD层、第1个LOD层至第i-1个LOD层确定为:待划分点云划分后的LOD层。
在一种可选的实施例中,第二选取模块75具体可以配置为:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,选取出排序在第一个的点。
在一种可选的实施例中,第二选取模块75具体可以配置为:
确定右移K位后的莫顿码的值相等的点的质心;
将右移K位后的莫顿码的值相等的点中距离质心最近的点,确定为选取出的一个点。
在一种可选的实施例中,第二选取模块75具体可以配置为:
根据右移K位后的莫顿码的值相等的点的个数,确定对应的选取个数;
根据对应的选取个数,从右移K位后的莫顿码的值相等的点中选取出选取个数个点。
在一种可选的实施例中,第二选取模块75具体可以配置为:
按照第i次迭代的输入点云的莫顿码从小到大的顺序,对第i次迭代的输入点云中的点进行排序;
从右移K位后的莫顿码的值相等的点中,按照排序结果,每隔第二预设阈值选取一个点。
在一种可选的实施例中,第三确定模块72还可以配置为:
将待划分点云的莫顿码右移N位,并将右移N位后的莫顿码的值相等的点组成一组点云;其中,N为正整数;
将每组点云作分别确定为第1次迭代的输入点云。
图8为本申请实施例提出的另一种可选的编码器的结构示意图,如图8所示,本申请实施例提出的编码器800还可以包括处理器81以及存储有处理器81可执行指令的存储介质82,存储介质82通过通信总线83依赖处理器81执行操作,当指令被处理器81执行时,执行上述一个或多个实施例所述的划分方法。
需要说明的是,实际应用时,编码器800中的各个组件通过通信总线83耦合在一起。可理解,通信总线83用于实现这些组件之间的连接通信。通信总线83除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为通信总线83。
图9为本申请实施例提出的另一种可选的解码器的结构示意图,如图9所示,本申请实施例提出的解码器900还可以包括处理器91以及存储有处理器91可执行指令的存储介质92,存储介质92通过通信总线93依赖处理器91执行操作,当指令被处理器91执行时,执行上述一个或多个实施例所述的划分方法。
需要说明的是,实际应用时,解码器900中的各个组件通过通信总线93耦合在一起。可理解,通信总线93用于实现这些组件之间的连接通信。通信总线93除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为通信总线93。
本申请实施例提供了一种计算机存储介质,存储有可执行指令,当所述可执行指令 被一个或多个处理器执行的时候,所述处理器执行上述一个或多个实施例所述的划分方法。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法 可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机、计算机、服务器、或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。
工业实用性
本申请实施例提供了一种划分方法、编码器、解码器以及计算机存储介质,获取待划分点云,计算待划分点云的莫顿码,将待划分的点云确定为第1次迭代的输入点云,当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当第i次迭代的输入点云中点的个数不等于0时,将第i次迭代的输入点云的莫顿码右移K位,从右移K位后莫顿码的值相等的点中,选取一个点,利用选取出的点组成第i个LOD层,将第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0,当第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为待划分点云划分后的LOD层,提高了基于LOD层进行邻居节点预测的精准度,从而提高了编解码的效率。

Claims (14)

  1. 一种划分方法,其中,包括:
    获取待划分点云,计算所述待划分点云的莫顿码;
    将所述待划分点云确定为第1次迭代的输入点云;
    当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
    当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
    从右移K位后莫顿码的值相等的点中,选取一个点;
    利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回执行所述当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
    当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
  2. 根据权利要求1所述的方法,其中,在当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位之前,所述方法还包括:
    根据所述待划分的点云的分布,确定K的值。
  3. 根据权利要求1所述的方法,其中,当i大于等于第一预设阈值时,在当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位之前,所述方法还包括:
    根据所述第i次迭代的输入点云中点的个数和所述第i次迭代的输入点云的分布,确定K的值。
  4. 根据权利要求1所述的方法,其中,当i大于等于第一预设阈值时,在利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1之后,所述方法还包括:
    根据所述第i次迭代的输入点云,调用预设的基于距离划分LOD的算法进行划分得到LOD层;
    将划分得到的LOD层、第1个LOD层至第i-1个LOD层确定为:所述待划分点云划分后的LOD层。
  5. 根据权利要求1所述的方法,其中,所述从右移K位后的莫顿码的值相等的点中,选取一个点,包括:
    按照所述第i次迭代的输入点云的莫顿码从小到大的顺序,对所述第i次迭代的输入点云中的点进行排序;
    从所述右移K位后的莫顿码的值相等的点中,选取出排序在第一个的点。
  6. 根据权利要求1所述的方法,其中,所述从右移K位后的莫顿码的值相等的点中,选取一个点,包括:
    确定所述右移K位后的莫顿码的值相等的点的质心;
    将所述右移K位后的莫顿码的值相等的点中距离所述质心最近的点,确定为选取出的一个点。
  7. 根据权利要求1所述的方法,其中,在当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位之后,在利用选取出的点组成第i个细节划分LOD层之前,所述方法还包括:
    根据右移K位后的莫顿码的值相等的点的个数,确定对应的选取个数;
    根据所述对应的选取个数,从所述右移K位后的莫顿码的值相等的点中选取出所述选取个数个点。
  8. 根据权利要求1所述的方法,其中,在当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位之后,在利用选取出的点组成第i个细节划分LOD层之前,所述方法还包括:
    按照所述第i次迭代的输入点云的莫顿码从小到大的顺序,对所述第i次迭代的输入点云中的点进行排序;
    从右移K位后的莫顿码的值相等的点中,按照排序结果,每隔第二预设阈值选取一个点。
  9. 根据权利要求1所述的方法,其中,在获取待划分点云,计算所述待划分点云的莫顿码之后,在当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0之前,所述方法还包括:
    将所述待划分点云的莫顿码右移N位,并将右移N位后的莫顿码的值相等的点组成一组点云;其中,N为正整数;
    将每组点云作分别确定为所述第1次迭代的输入点云。
  10. 一种编码器,其中,包括:
    第一计算模块,配置为获取待划分点云,计算所述待划分点云的莫顿码;
    第一确定模块,配置为将所述待划分的点云确定为第1次迭代的输入点云;
    第一判断模块,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
    第一右移模块,配置为当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
    第一选取模块,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
    第一划分模块,配置为利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回所述第一判断模块执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
    第二确定模块,配置为当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
  11. 一种解码器,其中,包括:
    第二计算模块,配置为获取待划分点云,计算所述待划分点云的莫顿码;
    第三确定模块,配置为将所述待划分的点云确定为第1次迭代的输入点云;
    第二判断模块,配置为当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;其中,i为初始值等于1的正整数;
    第二右移模块,配置为当所述第i次迭代的输入点云中点的个数不等于0时,将所述第i次迭代的输入点云的莫顿码右移K位;其中,K为正整数;
    第二选取模块,配置为从右移K位后的莫顿码的值相等的点中,选取一个点;
    第二划分模块,配置为利用选取出的点组成第i个细节划分LOD层,将所述第i次迭代的输入点云中除了选取出的点外剩余的点,确定为第i+1次迭代的输入点云,i更新为i+1,返回所述第二判断模块执行当进行第i次迭代时,判断第i次迭代的输入点云中点的个数是否等于0;
    第四确定模块,配置为当所述第i次迭代的输入点云中点的个数等于0时,将第1个LOD层至第i-1个LOD层确定为所述待划分点云划分后的LOD层。
  12. 一种编码器,其中,所述编码器包括:
    处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述的权利要求1至9任一项所述的划分方法。
  13. 一种解码器,其中,所述解码器包括:
    处理器以及存储有所述处理器可执行指令的存储介质,所述存储介质通过通信总线依赖所述处理器执行操作,当所述指令被所述处理器执行时,执行上述的权利要求1至9任一项所述的划分方法。
  14. 一种计算机可读存储介质,其中,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行所述的权利要求1至9任一项所述的划分方法。
PCT/CN2019/109653 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质 WO2021062736A1 (zh)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020227011834A KR102692779B1 (ko) 2019-09-30 2019-09-30 분할 방법, 인코더, 디코더 및 컴퓨터 저장 매체
CN201980098780.9A CN114207668A (zh) 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质
EP19947936.1A EP4040393A4 (en) 2019-09-30 2019-09-30 DIVISION PROCESS, ENCODER, DECODER AND COMPUTER STORAGE MEDIA
JP2022519645A JP7386337B2 (ja) 2019-09-30 2019-09-30 分割方法、符号器、復号器及びコンピュータ記憶媒体
PCT/CN2019/109653 WO2021062736A1 (zh) 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质
CN202210356934.3A CN114820831A (zh) 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质
US17/702,674 US11483560B2 (en) 2019-09-30 2022-03-23 Point cloud partition methods, encoder, and decoder
US17/931,272 US11785216B2 (en) 2019-09-30 2022-09-12 Point cloud coding methods, encoder, and decoder
US18/449,874 US20230388497A1 (en) 2019-09-30 2023-08-15 Point cloud coding methods, encoder, and decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/109653 WO2021062736A1 (zh) 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/702,674 Continuation US11483560B2 (en) 2019-09-30 2022-03-23 Point cloud partition methods, encoder, and decoder

Publications (1)

Publication Number Publication Date
WO2021062736A1 true WO2021062736A1 (zh) 2021-04-08

Family

ID=75336664

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/109653 WO2021062736A1 (zh) 2019-09-30 2019-09-30 划分方法、编码器、解码器以及计算机存储介质

Country Status (6)

Country Link
US (3) US11483560B2 (zh)
EP (1) EP4040393A4 (zh)
JP (1) JP7386337B2 (zh)
KR (1) KR102692779B1 (zh)
CN (2) CN114207668A (zh)
WO (1) WO2021062736A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113341396A (zh) * 2021-05-28 2021-09-03 深圳市优必选科技股份有限公司 机器人及其充电桩识别方法和装置
WO2023287213A1 (ko) * 2021-07-14 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2023287214A1 (ko) * 2021-07-14 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2023136618A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
JP7511010B2 (ja) 2020-01-06 2024-07-04 オッポ広東移動通信有限公司 区分方法、エンコーダー、デコーダー、及びコンピュータ記憶媒体

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114207668A (zh) * 2019-09-30 2022-03-18 Oppo广东移动通信有限公司 划分方法、编码器、解码器以及计算机存储介质
US11816868B2 (en) * 2020-08-14 2023-11-14 Tencent America LLC Coding of multiple-component attributes for point cloud coding

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080238919A1 (en) * 2007-03-27 2008-10-02 Utah State University System and method for rendering of texel imagery
CN102436654A (zh) * 2011-09-02 2012-05-02 清华大学 建筑点云的自适应分割方法
CN103077549A (zh) * 2012-10-24 2013-05-01 华南理工大学 一种基于kd树的实时大规模地形可视化实现方法
US20150113379A1 (en) * 2013-10-23 2015-04-23 Schlumberger Technology Corporation Representation of unstructured grids
CN108470374A (zh) * 2018-04-08 2018-08-31 中煤航测遥感集团有限公司 海量点云数据处理方法及装置
CN109257604A (zh) * 2018-11-20 2019-01-22 山东大学 一种基于tmc3点云编码器的颜色属性编码方法
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3035990A1 (fr) * 2015-05-07 2016-11-11 Inst Mines Telecom Procede de simplification de modele de geometrie
US10897269B2 (en) * 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
CN109886272B (zh) * 2019-02-25 2020-10-30 腾讯科技(深圳)有限公司 点云分割方法、装置、计算机可读存储介质和计算机设备
CN109889840B (zh) * 2019-03-20 2022-11-22 北京大学深圳研究生院 点云编码和解码的方法、编码设备和解码设备
EP4040790A4 (en) * 2019-09-30 2022-10-19 Guangdong Oppo Mobile Telecommunications Corp., Ltd. PREDICTION METHOD, ENCODER, DECODER AND COMPUTER STORAGE MEDIUM
CN114207668A (zh) * 2019-09-30 2022-03-18 Oppo广东移动通信有限公司 划分方法、编码器、解码器以及计算机存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080238919A1 (en) * 2007-03-27 2008-10-02 Utah State University System and method for rendering of texel imagery
CN102436654A (zh) * 2011-09-02 2012-05-02 清华大学 建筑点云的自适应分割方法
CN103077549A (zh) * 2012-10-24 2013-05-01 华南理工大学 一种基于kd树的实时大规模地形可视化实现方法
US20150113379A1 (en) * 2013-10-23 2015-04-23 Schlumberger Technology Corporation Representation of unstructured grids
US20190080483A1 (en) * 2017-09-14 2019-03-14 Apple Inc. Point Cloud Compression
CN108470374A (zh) * 2018-04-08 2018-08-31 中煤航测遥感集团有限公司 海量点云数据处理方法及装置
CN109257604A (zh) * 2018-11-20 2019-01-22 山东大学 一种基于tmc3点云编码器的颜色属性编码方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ERIK HUBO ; TOM MERTENS ; TOM HABER ; PHILIPPE BEKAERT: "The Quantized kd-Tree: Efficient Ray Tracing of Compressed Point Clouds", IEEE SYMPOSIUM ON INTERACTIVE RAY TRACING, 1 September 2006 (2006-09-01), pages 105 - 113, XP031008778, ISBN: 978-1-4244-0693-7, DOI: 10.1109/RT.2006.280221 *
YANG ZHENFA: "Research on Rendering of Massive Point Cloud Based on Multi-resolution LOD", GEOSPATIAL INFORMATION, vol. 14, no. 10, 31 October 2016 (2016-10-31), pages 22 - 25+4, XP055797922, ISSN: 1672-4623, DOI: 10.3969/j.issn.1672-4623.2016.10 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7511010B2 (ja) 2020-01-06 2024-07-04 オッポ広東移動通信有限公司 区分方法、エンコーダー、デコーダー、及びコンピュータ記憶媒体
CN113341396A (zh) * 2021-05-28 2021-09-03 深圳市优必选科技股份有限公司 机器人及其充电桩识别方法和装置
CN113341396B (zh) * 2021-05-28 2023-12-15 深圳市优必选科技股份有限公司 机器人及其充电桩识别方法和装置
WO2023287213A1 (ko) * 2021-07-14 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2023287214A1 (ko) * 2021-07-14 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2023136618A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치

Also Published As

Publication number Publication date
CN114820831A (zh) 2022-07-29
CN114207668A (zh) 2022-03-18
JP7386337B2 (ja) 2023-11-24
KR102692779B1 (ko) 2024-08-08
US11785216B2 (en) 2023-10-10
US20220217343A1 (en) 2022-07-07
JP2023500186A (ja) 2023-01-05
EP4040393A4 (en) 2023-06-14
EP4040393A1 (en) 2022-08-10
US20230388497A1 (en) 2023-11-30
US11483560B2 (en) 2022-10-25
KR20220074892A (ko) 2022-06-03
US20230007250A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
WO2021062736A1 (zh) 划分方法、编码器、解码器以及计算机存储介质
JP7330306B2 (ja) 変換方法、逆変換方法、エンコーダ、デコーダ及び記憶媒体
WO2021062772A1 (zh) 预测方法、编码器、解码器及计算机存储介质
US20220329833A1 (en) Nearest neighbor search method, apparatus, device, and storage medium
WO2022120594A1 (zh) 点云编解码方法、编码器、解码器及计算机存储介质
US20230086264A1 (en) Decoding method, encoding method, decoder, and encoder based on point cloud attribute prediction
US20230101072A1 (en) Nearest neighbour search method, encoder, decoder and storage medium
JP7520223B2 (ja) 点群階層化方法、デコーダ、エンコーダ及び記憶媒体
JP2024123172A (ja) 区分方法、エンコーダー、デコーダー、及びコンピュータ記憶媒体
WO2021108969A1 (zh) 属性信息的预测方法、编码器、解码器、及存储介质
CN115438081A (zh) 一种海量船舶位置点云多级聚合与实时更新方法
CN115512077A (zh) 一种基于多层动态特征点云的隐式三维场景表征方法
CN114116925A (zh) 一种时空数据的查询方法及相关装置
TWI854112B (zh) 一種最近鄰搜索方法、編碼器、解碼器及儲存媒介
WO2022067782A1 (zh) 一种点云数据的层次划分方法、编码器及存储介质
WO2023155045A1 (zh) 预测的方法和装置、编码器、解码器和编解码系统
WO2022217611A1 (zh) 编解码方法及相关设备、存储介质
WO2023025174A1 (zh) 点云预测、点云编码、点云解码方法及设备
JPWO2021218509A5 (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: 19947936

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022519645

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20227011834

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019947936

Country of ref document: EP

Effective date: 20220502