WO2022067790A1 - 一种点云分层方法及解码器、编码器、存储介质 - Google Patents
一种点云分层方法及解码器、编码器、存储介质 Download PDFInfo
- Publication number
- WO2022067790A1 WO2022067790A1 PCT/CN2020/119707 CN2020119707W WO2022067790A1 WO 2022067790 A1 WO2022067790 A1 WO 2022067790A1 CN 2020119707 W CN2020119707 W CN 2020119707W WO 2022067790 A1 WO2022067790 A1 WO 2022067790A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- value
- maximum allowable
- code stream
- syntax element
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 183
- 238000005070 sampling Methods 0.000 claims description 187
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000009466 transformation Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000005484 gravity Effects 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000003746 surface roughness Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012812 general test Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the present application relates to the field of video coding, and relates to, but is not limited to, a point cloud layering method, a decoder, an encoder, and a storage medium.
- Level of Detail, LOD level of Detail
- the user manually sets the number of division layers for the LOD.
- the number of LOD division layers is usually set to a large number, so that the setting value and the The actual number of division layers does not match.
- an exemplary embodiment of the present application provides a point cloud layering method, a decoder, an encoder, and a storage medium to solve at least one problem existing in the related art.
- an exemplary embodiment of the present application provides a point cloud layering method, applied to a decoder, including:
- the point cloud code stream includes: geometric information and attribute information of the point cloud code stream;
- the value of the first syntax element determine the number of detail levels in the process of decoding the attribute information
- the attribute information is decoded according to the number of detail levels and the geometric information to obtain a reconstructed point cloud of the point cloud code stream.
- an exemplary embodiment of the present application provides a point cloud layering method, applied to an encoder, including:
- the first syntax element represents the number of levels of detail in the process of encoding the attribute information of the point cloud
- the point cloud is subdivided into layers, and the value of the first syntax element is determined
- the point cloud is encoded to generate a code stream
- the value of the first syntax element is encoded, and the encoded bits are written into the code stream.
- an embodiment of the present application provides a decoder, including:
- a first receiving module configured to receive a point cloud code stream, wherein the point cloud code stream includes: geometric information and attribute information of the point cloud code stream;
- a first determining module configured to determine the maximum allowable value of the first syntax element contained in the point cloud code stream
- a first parsing module configured to parse the point cloud code stream, and determine the value of the first syntax element according to the maximum allowable value
- a second determining module configured to determine, according to the value of the first syntax element, the number of levels of detail in the process of decoding the attribute information
- the first decoding module is configured to decode the attribute information according to the number of the detail levels and the geometric information, and obtain the reconstructed point cloud of the point cloud code stream.
- an encoder including:
- the first acquisition module is used to acquire the geometric information and attribute information of the point cloud
- a first determination module configured to determine the maximum allowable value of a first syntax element, wherein the first syntax element represents the number of levels of detail in the process of encoding the attribute information of the point cloud;
- a first division module configured to perform sub-level division on the point cloud according to the maximum allowable value and the geometric information of the point cloud, and determine the value of the first syntax element
- a first encoding module configured to encode the point cloud according to the subdivision level division of the point cloud to generate a code stream
- the second encoding module is configured to encode the value of the first syntax element, and write the encoded bits into the code stream.
- an embodiment of the present application provides a decoder, including:
- the second memory stores a computer program executable on the second processor, and when the second processor executes the program, the point cloud layering method of the first aspect is implemented.
- an encoder including:
- the first memory stores a computer program executable on the first processor, and when the first processor executes the program, the point cloud layering method of the second aspect is implemented.
- An exemplary embodiment of the present application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, implements the steps in the above point cloud layering method.
- FIG. 1A is a schematic diagram of an implementation flowchart of a point cloud layering method according to an exemplary embodiment of the present application
- FIG. 1B is a schematic flowchart of another implementation of a point cloud layering method provided by an exemplary embodiment of the present application
- FIG. 2A is a schematic flowchart of a point cloud layering method provided by an embodiment of the present application.
- FIG. 2B is a schematic flowchart of another implementation of a point cloud layering method provided by an exemplary embodiment of the present application.
- FIG. 3 is a schematic diagram of a point cloud compression encoding process according to an exemplary embodiment of the present application
- FIG. 4 is a schematic flowchart of an implementation of LOD division according to an exemplary embodiment of the present application.
- FIG. 5 is a schematic structural diagram of LOD division according to a Morton code provided by an exemplary embodiment of the present application.
- FIG. 6 is a schematic structural diagram of LOD division according to distance according to an exemplary embodiment of the present application.
- FIG. 7A is a schematic diagram of a hardware structure of a decoder according to an embodiment of the present application.
- FIG. 7B is a schematic diagram of the hardware structure of another decoder according to an embodiment of the present application.
- 8A is a schematic diagram of a hardware structure of an encoder according to an embodiment of the present application.
- FIG. 8B is a schematic diagram of a hardware structure of another encoder according to an embodiment of the present application.
- An exemplary embodiment of the present application proposes a point cloud layering method, which is applied to a mobile device with a front-facing camera or a rear-facing camera function, and the mobile device can be implemented in various forms.
- the mobile device described in an exemplary embodiment of the present application may include a mobile phone, a tablet computer, a palmtop computer, a personal digital assistant (Personal Digital Assistant, PDA), and the like.
- the functions implemented by the method can be implemented by the processor in the mobile device calling program codes.
- the program codes can be stored in a computer storage medium. It can be seen that the mobile device includes at least a processor and a storage medium.
- FIG. 1A is a schematic diagram of the implementation process of a point cloud layering method according to an exemplary embodiment of the present application, and the following description is made in conjunction with FIG. 1A:
- Step S101 receiving a point cloud code stream.
- the point cloud code stream includes: geometry information (geometry) and attribute information (Attribute) of the point cloud.
- the point cloud code stream can be understood as point cloud data that needs to be layered, such as point cloud data used to form 3D video.
- the method of layering the point cloud data can be realized according to Morton code or according to sampling distance.
- the geometric information of the point cloud code stream includes: point cloud normal vector, curvature, point cloud density, point cloud surface roughness, point cloud center of gravity, point cloud weight center of gravity, point cloud covariance and point cloud mutual covariance Wait.
- the attribute information includes: the square of the division distance of the input point cloud, the total number of division layers, the information of the color space, the spatial resolution, the point precision and the surface normal vector, etc.
- the process of implementing LOD layering on point cloud data according to Morton codes is as follows:
- the Morton code M starts from the highest bit for x, y, and z, and sequentially arranges x l , y l , z l to the lowest bit.
- the calculation formula of M is shown in the following formula (2):
- L(k) holds the points belonging to the kth layer LOD
- O(k) belongs to the set of points higher than the LODk layer.
- the first step first, O(k) and L(k) are initialized
- L(k) is initialized to the empty set
- O(k) is initialized to the empty set
- each iteration is traversed according to the index of the savepoint in the variable I.
- Each traversal calculates the distance from the current point to all points within a certain range in the set O(k).
- search in a search range SR1 of the set O(k) (SR1 represents the search range according to the Morton order, generally 8, 16, 64), if it is within this range If the distance from the current point is found to be less than the threshold dl, the current point is added to the set L(k), otherwise it is added to the set O(k).
- the third step in the process of each iteration, the sets L(k) and O(K) are calculated separately, and the points in O(k) are used as the prediction points of the points in the set L(k), In this way, LOD layering of point cloud data is realized.
- the set R(k) L(k) ⁇ L(k-1), where R(k) represents the point set that differs by part between the LOD(k-1) and the LOD(k) set.
- the division process of the LOD is determined, after the point cloud geometry is reconstructed, the geometric coordinate information of the point cloud can be obtained at this time.
- the process of dividing the LOD is applied to the encoding and decoding ends of the point cloud at the same time.
- the specific process of LOD dividing is as follows:
- the algorithm process is to iterate continuously.
- the generation steps of the refinement level R l corresponding to each iteration l are as follows:
- the algorithm iteratively traverses all points
- the second step if the current point has been traversed, ignore the point
- the third step otherwise, calculate the closest distance D from the point to the set V;
- the fourth step if the closest distance D is greater than or equal to the threshold d l , add the point to the refinement levels R l and V;
- the process iterates continuously until all points have been traversed.
- the lth LOD set that is, LOD l , is obtained by merging the points in the refinement levels R 0 , R 1 , .... , R l .
- Step S102 Determine the maximum allowable value of the first syntax element included in the point cloud code stream.
- the maximum allowable value is used to specify the detail level of attribute encoding, which can be in the range of 0 to X, where X is a positive integer.
- the maximum allowable value for layering the point cloud code stream can be determined by referring to the profile (Profile), level (Tier) or level (Level) of the point cloud code stream. Or set the maximum allowable value as a constant, that is, perform LOD layering on the point cloud code stream according to the constant.
- Step S103 parse the point cloud code stream, and determine the value of the first syntax element according to the maximum allowable value.
- the point cloud code stream is parsed, and the maximum allowable value for layering the point cloud code stream is obtained. Then, the value of the first syntax element can be determined from the maximum allowable values by referring to the profile (Profile), level (Tier) or level (Level) of the point cloud code stream, or the value of the first syntax element can be set is a constant, that is, LOD layering is performed on the point cloud code stream according to the constant.
- Profile profile
- Tier level
- Level level of the point cloud code stream
- the process of determining the value of the first syntax element can be implemented in the following two ways:
- Method 1 First, the point cloud code stream is parsed to obtain a conformance parameter.
- the conformance parameter is used to characterize the properties of the point cloud code stream, and includes at least one of the following parameters: grade, level, and level.
- the maximum allowable value is determined according to the preset correspondence between the compliance parameter and the maximum allowable value.
- the corresponding relationship between the compliance parameter and the maximum allowable value is a preset corresponding relationship, including: grade, level, and the corresponding relationship between the level and the maximum allowable value.
- the level is divided into three levels, high, middle and low, and different levels are set to correspond to different maximum allowable values. The higher the level, the higher the maximum allowable value.
- the maximum allowable value corresponding to a high level The value is 31, the maximum allowable value corresponding to the medium level is 21, and the maximum allowable value corresponding to the low level is 16; the corresponding relationship between the grade and level and the maximum allowable value can also be set in the same way. In this way, the maximum allowable value may be determined according to the correspondence between the compliance parameter and the maximum allowable value.
- Method 2 The maximum allowable value is set as a preset constant value, wherein the constant value is an integer greater than 0.
- the constant value is an integer greater than 0 and less than or equal to a preset threshold.
- the preset threshold may be 31, and in other embodiments, the preset threshold may also take other values, such as 6, 7, 8, 16, 21, 32, or 64.
- Step S104 Determine the number of detail levels in the process of decoding the attribute information according to the value of the first syntax element.
- the value minus 1 can be used as the number of detail levels in the process of decoding the point cloud attribute information.
- the Morton code set of the point cloud code stream after determining the value of the first syntax element, first, obtain the Morton code set of the point cloud code stream; in some possible implementations, first, obtain the point cloud data to be searched; for example, Point cloud data used to form 3D video, etc. Then, the Morton code of the point cloud data is determined; for example, the binary coded data stream of the point cloud data can be determined first, and then the Morton code of the point cloud data can be determined according to the binary coded data stream. Finally, the Morton codes of the point cloud data are arranged in ascending order to obtain the Morton code set including a plurality of Morton codes.
- the Morton codes of the point cloud data can also be arranged in descending order to obtain the Morton code set including multiple Morton codes; it is also possible to arrange the Morton codes of the point cloud data according to any specific (for example, arbitrarily set, the largest in the middle, and the order of decreasing to both ends, etc.), to obtain a Morton code set. Then, according to the Morton code set and the geometric information, within the maximum allowable value range, determine the value of the first syntax element; finally, according to the value of the first syntax element, determine the value of the first syntax element.
- the point cloud is divided into subdivision levels.
- Step S105 Decode the attribute information according to the number of detail levels and the geometric information of the point cloud to obtain a reconstructed point cloud of the point cloud.
- the number of detail levels can be understood as the number of layers for LOD layering of the point cloud.
- the reconstruction value of one or more levels of detail in the point cloud is determined according to the number of levels of detail and the geometric information of the point cloud.
- a reconstructed point cloud of the point cloud is obtained. For example, according to the number of the level of detail and the geometric information of the point cloud, the level of detail is divided on the point cloud, and the reconstruction value of one or more levels of detail is obtained.
- the decoder when it performs point cloud reconstruction, it can parse out the position information of the intersection of each strip in the n strips and the point cloud information corresponding to the n strips from the code stream, then When the point cloud model is reconstructed, the point cloud model can be reconstructed according to the position information of the intersection of each strip in the n strips and the point cloud information corresponding to the n strips.
- the maximum allowable value of the first syntax element is determined by acquiring the geometric information and attribute information of the point cloud, and then the first syntax element is determined according to the maximum allowable value and the geometric information of the point cloud The value of the element is obtained; finally, the point cloud is encoded according to the subdivision level of the point cloud; the value of the first syntax element is encoded, and the encoded bits are written into the code stream.
- the maximum allowable value of the point cloud data is adaptively determined, thereby specifying the value range of the first syntax element for layering the point cloud data, and then it can be used in
- the encoding end and the decoding end check the number of LOD division layers set by the user, which can increase the consistency between the number of division layers set by the user and the actual number of division layers.
- the method further includes the following process:
- a Morton code set of the point cloud code stream is obtained; in some possible implementations, first, point cloud data to be searched is obtained; for example, point cloud data used to form a three-dimensional video, etc. Then, the Morton code of the point cloud data is determined; for example, the binary coded data stream of the point cloud data can be determined first, and then the Morton code of the point cloud data can be determined according to the binary coded data stream. Finally, the Morton codes of the point cloud data are arranged in ascending order to obtain the Morton code set including a plurality of Morton codes.
- the Morton codes of the point cloud data can also be arranged in descending order to obtain the Morton code set including multiple Morton codes; it is also possible to arrange the Morton codes of the point cloud data according to any specific (for example, arbitrarily set, the largest in the middle, and the order of decreasing to both ends, etc.), to obtain a Morton code set. Then, according to the Morton code set and the geometric information, within the maximum allowable value range, determine the value of the first syntax element; finally, according to the value of the first syntax element, determine the value of the first syntax element.
- the point cloud is divided into subdivision levels.
- the maximum allowable value for layering the point cloud data can be adaptively determined according to the attribute information of the point cloud data, that is, step S102, which can be achieved by the following The steps are implemented, see FIG. 1B , FIG. 1B is a schematic flowchart of another implementation of the point cloud layering method provided by an exemplary embodiment of the present application, and the following descriptions are made:
- Step S121 Parse the point cloud code stream to determine the values of the length, width and height of the root node.
- the root node represents the deepest node in the point cloud, which can be represented by a bounding box.
- the geometric information contained in the point cloud code stream is parsed, and the values of the length, width and height of the root node are determined.
- the unit header information in the geometric information is parsed, and the values of the length, width and height of the root node are determined.
- the values of the length, width and height of the root node are encoded into the unit header information in the geometry information (wherein the unit header information can be expressed as geometry_data_unit_header()), so on the decoding side, the geometry information can be parsed by The unit header information in the root node determines the values of the length, width and height of the root node.
- the encoder determines the bounding box of the point cloud according to the geometric information of the point cloud, and determines the root node of the point cloud according to the bounding box, so as to obtain the length and width of the root node of the point cloud. and height, and encode the length, width and height of the root node of the point cloud into a code stream and write it into the unit header information.
- Step S122 Parse the point cloud code stream to determine the value of the first parameter of right shift.
- the value of the first parameter for the layered right shift of the point cloud is determined, for example, the initial sampling distance input by the user.
- the initial sampling distance of the point cloud is determined by parsing the point cloud code stream, and the initial sampling distance is set as the value of the first parameter of right shift.
- the initial sampling distance can be set by the user or set according to the attribute information of the point cloud.
- Step S123 Determine the maximum allowable value according to the value of the right-shift first parameter and the values of the length, width and height of the root node.
- the attribute information of the point cloud is comprehensively considered to determine the Nth layer for layering the point cloud data.
- the maximum allowable value is set by judging the relationship between the Nth layer and the target length.
- the maximum allowable value for dividing the point cloud code stream is determined, including the following two implementations:
- Method 1 In the way of LOD layering of point cloud data according to Morton code, it can be achieved through the following steps:
- the first step is to set the maximum value of the root node dimension to the maximum value of the length, width and height of the root node.
- the maximum value (gbh.maxRootNodeDimLog2) among the three values of the length, width and height of the root node is set as the maximum dimension of the root node.
- the point cloud is processed to finally determine the size of the node in the Nth layer. If the size of the node in the Nth layer is If the difference between the size and the size of the root node is small, or the two are equal, the number of layers where the Nth layer is located is determined as the maximum allowable value.
- the point cloud code stream is parsed, and the value of the second parameter of right shift is determined.
- shifting the value of the second parameter to the right can be understood as a fine-tuning amount for the value of the first parameter shifting to the right.
- the point cloud data when encoding the point cloud data, first, the point cloud data is divided into multiple small modules, and then, in the geometric information, the initial sampling distance of each block in the point cloud is determined, Sum the initial sampling distances of multiple modules, and determine the difference between the sum of the initial sampling distances and the first parameter of the right-shift as the second parameter of the right-shift, that is, the right-shift of the second parameter can be understood as a right-shifted second parameter.
- the third step is to set the difference between the maximum value of the root node dimension and the first right-shift parameter and the second right-shift parameter as the maximum allowable value.
- the first right-shift parameter and the right-shift second parameter are summed, for example, according to the input initial division distance and the total number of division layers, the point cloud is calculated to determine the initial sampling distance and value.
- the second right-shift parameter abh.attr_dist2_delta is calculated according to the first right-shift parameter aps.dist2 and the input point cloud, and then the initial right-shift parameter is calculated according to aps.dist2 and abh.attr_dist2_delta Bit shiftbits0.
- the maximum allowable value can be determined by the following process:
- Step A determine the header file function of the attribute information.
- the point cloud data is processed to obtain the header file function (for example, abh.attr_dist2_delta) .
- This header file function is used to characterize the attribute parameters of the point cloud data.
- step B the value of the header file function and the parameter value corresponding to the attribute information are added to obtain the initial sampling distance and value.
- the value of abh.attr_dist2_delta (corresponding to the value of the second parameter of the right shift) is added to the parameter value corresponding to the attribute information, and the result obtained by the addition is used as the initial right shift number. In this way, by processing the point cloud data according to the input attribute information, the initial right shift number when dividing the point cloud is determined.
- Step C subtract the maximum value of the root node dimension from the initial sampling distance and value to obtain the maximum allowable value.
- step C can be achieved by the following process:
- Step C1 according to the initial sampling distance and value, determine the node to which the Nth layer for dividing the point cloud belongs.
- N is an integer greater than or equal to 2; on the basis of obtaining the initial right shift number, each time a layer is divided, the initial right shift number increases by 1, and the size of the corresponding leaf node increases by 2 times.
- the initial right shift number is shiftbits0
- the corresponding node size is 2 shiftbits0 .
- the process of determining the node to which the Nth layer belongs is as follows:
- the size information of the node to which the initial layer for layering the point cloud code stream belongs is determined.
- the preset base as the base
- take the initial right shift number as the exponent
- take the obtained result as the size of the node to which the initial layer for layering the point cloud code stream belongs; for example, take 2 as the base and shiftbits0 as the initial Right shift number, then the size of the node to which the initial layer for layering the point cloud code stream belongs is 2 shifts0 .
- the difference in the number of layers between the Nth layer and the initial layer is determined.
- the difference is N-1.
- the size information of the node to which the initial layer belongs is adjusted according to the difference in the number of layers, so as to obtain the adjusted size information.
- the difference with the number of layers is N-1
- the number of bits shifted to the right of the Nth layer is shiftbits0+(N-1).
- 2 shiftbits0 increase 2 N-1 times to obtain the adjusted size Information 2 N-1+shifbits0 .
- the node to which the Nth layer belongs is determined.
- the resizing information is taken as the size of the node to which the Nth layer belongs. For example, take 2 N-1+shiftbits0 as the size of the node to which the Nth layer belongs.
- Step C2 Determine the maximum allowable value according to the node to which the Nth layer belongs and the root node.
- the maximum number of layers is determined by comparing the size relationship between the size of the node to which the Nth layer belongs and the size of the root node.
- the maximum allowable value is determined according to the node to which the Nth layer belongs and the root node, which can be implemented through the following process:
- the size information of the root node is determined.
- the size information of the root node is the length of the longest side in the bounding box.
- the size between the adjusted size information and the size information of the root node is compared, and the size information of the root node and the adjusted size information are subtracted to obtain a first difference value.
- the adjusted size information is 2 N-1+shifbits0
- the size information of the root node is 2 maxRootNodeDimLog2
- the first difference is 2 maxRootNodeDimLog2 -2 N-1+shifbits0 .
- the first difference is less than or equal to the first preset threshold, it is determined that the number of layers corresponding to the Nth layer is the maximum allowable value.
- the first preset threshold is an integer close to 0, that is, when the first difference is close to 0, it indicates that the size of the node to which the Nth layer belongs is very close to the size of the root node, and further indicates that the size of the node corresponding to the Nth layer is close to that of the root node.
- the number of layers is already the maximum number of layers for layering the point cloud code stream. In this way, the number of layers corresponding to the Nth layer whose size is very close to the size of the root node is taken as the maximum allowable value.
- the attribute information of the cloud adaptively sets the range of the syntax element lifting_num_detail_levels_minus1.
- the point cloud data is processed by using the attribute parameter set of the input point cloud to determine the initial right shift number of the point cloud; on the basis of the initial right shift number, the corresponding node of the initial division layer is determined Then, each time a layer is divided, the initial right shift number increases, and the size of the node corresponding to the divided layer also increases, so that the number of bits shifted to the right of the Nth layer and the size of the corresponding node of the Nth layer can be determined, and finally , and set the maximum allowable value by comparing the size relationship between the size of the Nth layer node and the target length.
- Method 2 In the method of LOD layering of point clouds according to the sampling distance, first, the sampling distance of the Nth layer is determined by combining the ratio of the initial sampling distance in the attribute information and the sampling distance of two adjacent layers; Then, set the maximum allowable value by comparing the relationship between the sampling distance of the Nth layer and the target length, which can be achieved by the following steps:
- Step A Determine the value of the diagonal distance of the root node according to the values of the length, width and height of the root node.
- the length of the longest diagonal in the bounding box is determined as the target length.
- the size of the root node in the attribute information of the point cloud code stream determine the lengths of the three mutually perpendicular sides in the bounding box, and according to the lengths of the three sides, determine the length between the two furthest vertices in the bounding box , that is, the length of the longest diagonal, so as to obtain the target length.
- the size of the root node is 2 maxRootNodeDimLog2
- Step B Determine the maximum allowable value according to the value of the diagonal distance of the root node and the value of the first right-shift parameter.
- step B can be implemented by the following steps:
- Step B1 determine the first ratio.
- the first ratio is the ratio between the value of the diagonal distance of the root node and the arithmetic square root of the value of the right-shift first parameter.
- the ratio between the sampling distances of the first layer and the second layer may be set to be the same, for example, both are P. In other embodiments, the ratio between the sampling distances between each two adjacent layers may also be set to be different.
- Step B2 determining the logarithmic value of the first ratio.
- the logarithm of the first ratio can be understood as the sampling distance of the Nth layer. According to the length of the longest diagonal in the bounding box and the first ratio, the sampling distance of the Nth layer can be determined. For example, by multiplying the initial sampling distance by the first ratio, the sampling distance of the next layer can be determined, and so on, the sampling distance of the Nth layer can be determined.
- the first ratio between sampling distances of adjacent LODs is determined by analyzing the point cloud code stream, and the first ratio is set according to the sparseness of point cloud coordinates in the geometric information of the point cloud.
- the first ratio can be set to any number greater than 1 to ensure that in the process of layering the point cloud, the collection of the point cloud is sparse layer by layer as the number of layers increases.
- Step B3 determining the logarithmic value as the maximum allowable value.
- the base corresponding to the logarithmic value is set as the ratio between the sampling distances of adjacent LODs.
- the sampling distance of the Nth layer by comparing the sampling distance of the Nth layer with the length of the longest diagonal in the bounding box, if the sampling distance of the Nth layer is very close to the length of the longest diagonal in the bounding box, it means that The Nth layer is the last layer for layering the point cloud, that is, the number of layers corresponding to the Nth layer is the maximum allowable value.
- the maximum allowable value can be set by the longest diagonal of the bounding box, which can be achieved by the following process:
- the first step is to determine the side lengths of the three perpendicular sides of the bounding box.
- the bounding box is a cube
- the three sides in the bounding box that are perpendicular to each other can be understood as the length, width and height of the cube.
- the second step is to determine the length of the longest diagonal line based on the lengths of the three sides.
- the length of the three perpendicular sides in the bounding box is used to determine the length of the longest diagonal, and then the target length can be obtained. to set the maximum allowable value.
- the sampling distance of the Nth layer can be determined by the sampling distance and the sampling distance ratio of two adjacent layers, which can be implemented by the following process:
- the first step is to obtain sampling distances of at least two adjacent layers to obtain a sampling distance set.
- the sampling distances of multiple adjacent layers are determined by analyzing the initial sampling distance and the total number of sampling layers included in the attribute information. For example, the sampling distance between the first layer and the second layer, the sampling distance between the third layer and the fourth layer, the sampling distance between the fifth layer and the sixth layer, etc. are obtained respectively, forming a sampling distance set. That is, the sampling distance set includes sampling distances of multiple adjacent layers.
- the ratio between the sampling distances of two adjacent layers in the sampling distance set is determined to obtain a preset sampling distance ratio.
- the ratio of the sampling distances of two adjacent layers in the sampling distance set is calculated to obtain the ratio of the sampling distances between the two adjacent layers.
- the ratio of sampling distances between every two adjacent layers is the same, and the same ratio is used as the preset sampling distance ratio.
- the preset distance ratio may be obtained by calculating the ratio of sampling distances of two adjacent layers in this way, or may be preset.
- the sampling distance of the Nth layer is determined according to the preset sampling distance ratio and the initial sampling distance in the attribute information.
- the layer number difference between the Nth layer and the layer corresponding to the initial sampling distance in the attribute information determines the layer number difference and the preset sampling distance ratio, and finally, multiply the product result with the target length Multiply to get the sampling distance of the Nth layer. For example, if the layer number difference between the Nth layer and the layer corresponding to the initial sampling distance is N-1, and the preset sampling distance ratio is P, then the sampling distance of the Nth layer is P N-1 D 1 .
- the sampling distance ratio of two adjacent layers is obtained by acquiring the sampling distance in the attribute information, and the sampling distance of the Nth layer is determined in combination with the initial sampling distance;
- the maximum allowable value can be set by determining the sampling distance of each layer.
- the maximum allowable value can be set by judging the relationship between the sampling distance of the Nth layer and the target length, which can be achieved through the following process:
- the second difference between the sampling distance of the Nth layer and the target length is determined.
- the difference between the sampling distance of the Nth layer and the longest diagonal of the bounding box is determined to obtain the second difference.
- the sampling distance of the Nth layer is P N-1 D 1
- the longest diagonal of the bounding box is The second difference
- the second step if the second difference is less than or equal to the second preset threshold, determine the number of layers corresponding to the Nth layer as the maximum allowable value.
- the second preset threshold is a positive number close to 0, which may be the same as or different from the first preset threshold. If the second difference is less than or equal to the second preset threshold, it means that the sampling distance of the Nth layer is very close to the length of the longest diagonal of the bounding box, which means that the Nth layer is the last layer of layering the point cloud code stream. One layer, so that the number of layers corresponding to the Nth layer can be taken as the maximum allowable value.
- the value of the first syntax element is determined within the maximum allowable value range. That is, when receiving an instruction for setting the number of layers input by the user, a layer number can be selected as the value of the first syntax element within the maximum allowable value; for example, the maximum allowable value is [0, 20], then 18 can be selected as the value of the first syntax element. Then, the point cloud is divided according to the value of the first syntax element.
- the maximum number of layers that can be divided into the point cloud data is adaptively determined, thereby specifying the maximum allowable layering of the point cloud data.
- the number of LOD division layers set by the user can be checked at the encoding end and the decoding end, and the consistency between the number of division layers set by the user and the actual number of division layers can be increased.
- the method after setting the maximum allowable value for layering point cloud data, the number of LOD division layers set by the user can be checked at the encoding end and the decoding end, so as to increase the consistency of the system, That is, after dividing the point cloud code stream according to the maximum allowable value, the method further includes the following process:
- the first step is to obtain the input preset number of layers for layering the point cloud.
- the preset number of layers for layering the point cloud code stream by the user when the user layers the point cloud, the preset number of layers for layering the point cloud code stream by the user can be obtained.
- the preset number of layers for layering the point cloud code stream set by the user is 30.
- the validity of the preset number of layers is determined according to the maximum allowable value.
- the preset number of layers is within the maximum allowable value. If the preset number of layers is within the maximum allowable value, it is determined that the preset number of layers is legal, that is, the preset number of layers is available. If the preset number of layers is not within the maximum allowable value, it is determined that the preset number of layers is illegal, that is, the preset number of layers is unavailable. In a specific example, if the preset number of layers is 30 and the maximum allowable value is 21, it means that the preset number of layers is illegal.
- the point cloud is layered according to the preset number of layers.
- the preset number of layers is less than or equal to the maximum allowable value, that is, the preset number of layers is within the maximum allowable value, indicating that the preset number of layers is available, then the point cloud can be layered according to the preset number of layers.
- the LOD division layers set by the user can be checked at the encoding end and the decoding end, thereby improving the consistency between the expected LOD division layers set by the user and the actual LOD division layers.
- FIG. 2A is a schematic flowchart of a point cloud layering method provided by an embodiment of the present application. As shown in Figure 2A, the method may include:
- Step S201 obtaining geometric information and attribute information of the point cloud.
- the point cloud code stream can be understood as point cloud data that needs to be layered, for example, point cloud data used to form a 3D video.
- the method of layering the point cloud data can be realized according to Morton code or according to sampling distance.
- the geometric information of the point cloud code stream includes: point cloud normal vector, curvature, point cloud density, point cloud surface roughness, point cloud center of gravity, point cloud weight center of gravity, point cloud covariance and point cloud mutual covariance Wait.
- the attribute information includes: the square of the division distance of the input point cloud, the total number of division layers, the information of the color space, the spatial resolution, the point precision and the surface normal vector, etc.
- the process of implementing LOD layering on point cloud data according to Morton codes is as follows:
- D0 and ⁇ as initial parameters set by two users respectively, which are used as parameters for dividing the LOD distance threshold, where ⁇ >1.
- the specific method for calculating the Morton code is described as follows. For a three-dimensional coordinate represented by a d-bit binary number for each component, its three components can represent the above formula (1).
- the Morton code M starts from the highest bit for x, y, and z, and arranges x l , y l , and z l to the lowest bit in turn.
- the calculation formula of M is as formula (2).
- the points in the point cloud are arranged in ascending order of Morton code.
- the index of all points is stored in the variable I.
- the algorithm iterates continuously. In the kth iteration, the points belonging to LODk will search for the nearest neighbor from LOD0 to LODk-1 layer.
- the specific process of the algorithm is as follows:
- L(k) holds the points belonging to the kth layer LOD
- O(k) belongs to the set of points higher than the LODk layer.
- the first step is to initialize O(k) and L(k);
- L(k) is initialized to the empty set
- O(k) is initialized to the empty set
- each iteration is traversed according to the index of the savepoint in the variable I.
- Each traversal calculates the distance from the current point to all points within a certain range in the set O(k).
- search in a search range SR1 of the set O(k) (SR1 represents the search range according to the Morton order, generally 8, 16, 64), if it is within this range If the distance from the current point is found to be less than the threshold dl, the current point is added to the set L(k), otherwise it is added to the set O(k).
- the third step in the process of each iteration, the sets L(k) and O(K) are calculated separately, and the points in O(k) are used as the prediction points of the points in the set L(k), In this way, LOD layering of point cloud data is realized.
- the set R(k) L(k) ⁇ L(k-1), where R(k) represents the point set that differs by part between the LOD(k-1) and the LOD(k) set.
- the division process of the LOD is determined, after the point cloud geometry is reconstructed, the geometric coordinate information of the point cloud can be obtained at this time.
- the process of dividing the LOD is applied to the encoding and decoding ends of the point cloud at the same time.
- the specific process of LOD division is as follows:
- the algorithm process is to iterate continuously.
- the generation steps of the refinement level R l corresponding to each iteration l are as follows:
- the algorithm iteratively traverses all points
- the second step if the current point has been traversed, ignore the point
- the third step otherwise, calculate the closest distance D from the point to the set V;
- the fourth step if the closest distance D is greater than or equal to the threshold d l , add the point to the refinement levels R l and V;
- the process iterates continuously until all points have been traversed.
- the lth LOD set that is, LOD l , is obtained by merging the points in the refinement levels R 0 , R 1 , .... , R l .
- Step S202 determining the maximum allowable value of the first syntax element.
- the first syntax element represents the number of levels of detail in encoding the attribute information of the point cloud.
- the maximum allowable value for layering the point cloud code stream can be determined by referring to the profile (Profile), level (Tier) or level (Level) of the point cloud code stream. Or set the maximum allowable value as a constant, that is, perform LOD layering on the point cloud code stream according to the constant.
- the process of determining the maximum allowable value can be implemented in the following ways:
- Method 1 First, determine the conformance parameter.
- the conformance parameter is used to characterize the properties of the point cloud code stream, and includes at least one of the following parameters: grade, level, and level.
- the compliance parameter may be set according to the configuration parameter of the encoder. For example, if the level in the configuration parameter of the encoder is high, the level in the compliance parameter is set to be high. Similarly, the level of the configuration parameter in the encoder can be set to the level in the compliance parameter. Or, set the level of the configuration parameter in the encoder to the level in the compliance parameter.
- the setting of the compliance parameter may also be determined according to the parameter determined in the session negotiation process. For example, in the session negotiation process, it is determined that the level is high, then the level in the compliance parameter is set to be high.
- the maximum allowable value is determined according to the preset correspondence between the compliance parameter and the maximum allowable value.
- the corresponding relationship between the compliance parameter and the maximum allowable value is a preset corresponding relationship, including: grade, level, and the corresponding relationship between the level and the maximum allowable value.
- the level is divided into three levels, high, middle and low, and different levels are set to correspond to different maximum allowable values. The higher the level, the higher the maximum allowable value.
- the maximum allowable value corresponding to a high level The value is 31, the maximum allowable value corresponding to the medium level is 21, and the maximum allowable value corresponding to the low level is 16; the corresponding relationship between the grade and level and the maximum allowable value can also be set in the same way. In this way, the maximum allowable value may be determined according to the correspondence between the compliance parameter and the maximum allowable value.
- the compliance parameter is encoded, and the encoded bits are written into the code stream.
- Method 2 The maximum allowable value is set as a preset constant value, wherein the constant value is an integer greater than 0.
- the constant value is an integer greater than 0 and less than or equal to a preset threshold.
- the preset threshold may be 31.
- the constant value of the corresponding device may be set according to the configuration parameters of the encoder, and may also be a parameter solidified by the encoder itself, and set as the parameter value.
- the preset threshold may also take other values, such as 6, 7, 8, 16, 21, 32, or 64, and so on.
- Step S203 according to the maximum allowable value and the geometric information of the point cloud, perform subdivision level division on the point cloud, and determine the value of the first syntax element.
- the value of the first syntax element is not greater than the maximum allowable value.
- the point cloud may be LOD divided by comprehensively considering the geometric information of the point cloud within the maximum allowable value range, so as to determine the value of the first syntax element.
- first obtain the Morton code set of the point cloud code stream; in some possible implementations, first, obtain the point cloud data to be searched; For example, point cloud data used to form 3D video, etc. Then, the Morton code of the point cloud data is determined; for example, the binary coded data stream of the point cloud data can be determined first, and then the Morton code of the point cloud data can be determined according to the binary coded data stream. Finally, the Morton codes of the point cloud data are arranged in ascending order to obtain the Morton code set including a plurality of Morton codes.
- the Morton codes of the point cloud data can also be arranged in descending order to obtain the Morton code set including multiple Morton codes; it is also possible to arrange the Morton codes of the point cloud data according to any specific (for example, arbitrarily set, the largest in the middle, and the order of decreasing to both ends, etc.), to obtain a Morton code set. Then, according to the Morton code set and the geometric information, within the maximum allowable value range, determine the value of the first syntax element; finally, according to the value of the first syntax element, determine the value of the first syntax element.
- the point cloud is divided into subdivision levels.
- Step S204 encoding the point cloud according to the subdivision level division of the point cloud to generate a code stream.
- the point cloud of each layer is encoded according to the LOD layering of the point cloud.
- Step S205 encode the value of the first syntax element, and write the encoded bits into the code stream.
- the number N of bits occupied by the value in the code stream is determined.
- the number of bits N corresponding to the first syntax element in the code stream is set to the minimum number of bits required to represent the maximum allowable value by using an unsigned binary number.
- the minimum number of bits required to represent the maximum allowable value using an unsigned binary number is 64, and 64 is set as the number of bits N corresponding to the first syntax element in the code stream.
- the value of the first syntax element is converted into N bits, that is, the value of the first syntax element is converted into bits corresponding to N unsigned binary numbers, and the N bits are written into the code stream, thereby realizing the The value of the first syntax element is coded, and the coded bits are written into the code stream.
- the maximum allowable value of the first syntax element is determined by acquiring the geometric information and attribute information of the point cloud, and then the first syntax element is determined according to the maximum allowable value and the geometric information of the point cloud The value of the element is obtained; finally, the point cloud is encoded according to the subdivision level of the point cloud; the value of the first syntax element is encoded, and the encoded bits are written into the code stream.
- the maximum allowable value of the point cloud data is adaptively determined, thereby specifying the value range of the first syntax element for layering the point cloud data, and then it can be used in
- the encoding end and the decoding end check the number of LOD division layers set by the user, which can increase the consistency between the number of division layers set by the user and the actual number of division layers.
- the maximum allowable value for layering the point cloud data can be adaptively determined according to the attribute information of the point cloud data, that is, step S202, which can be achieved by the following The steps are implemented, see FIG. 2B , FIG. 2B is a schematic flowchart of another implementation of the point cloud layering method provided by an exemplary embodiment of the present application, and the following descriptions are made:
- Step S221 Determine the values of the length, width and height of the root node.
- the root node represents the deepest node in the point cloud, which can be represented by a bounding box.
- the bounding box of the point cloud is determined according to the geometric information of the point cloud.
- the coordinate information of the point cloud can be determined, and then the size of the cube surrounding the point cloud data can be determined according to the coordinate information, thereby obtaining the size of the bounding box.
- the size of the bounding box includes the length, width, height, and diagonal length of the bounding box.
- the root node of the point cloud is determined according to the bounding box, so as to obtain the values of the length, width and height of the root node of the point cloud.
- a target length that satisfies a preset condition in the bounding box size is determined; for example, the size of the longest side of the bounding box is determined as the target length.
- the preset condition can be understood as the longest dimension that matches the current layering method of the point cloud.
- the preset condition is the longest diagonal line in the bounding box, that is, the connection between the two vertices with the farthest distance in the bounding box.
- the preset condition is the longest side of the bounding box, and the length of this side is used as the length of the root node of the point cloud code stream.
- the target length is the longest side in the bounding box
- a cube is constructed according to the longest side
- the cube is used as the root node of the point cloud, that is, the largest node in the point cloud.
- the longest side in the bounding box is 2 maxRootNodeDimLog2
- the size of the root node is also 2 maxRootNodeDimLog2 .
- Step S222 according to the geometric information of the point cloud, determine the value of the first parameter of right shift.
- the value of the first parameter for the layered right shift of the point cloud is determined, for example, the initial sampling distance input by the user.
- an initial sampling distance of the point cloud is determined, and the initial sampling distance is set as the value of the first parameter of right shift.
- the initial sampling distance can be set by the user or set according to the attribute information of the point cloud.
- Step S223 Determine the maximum allowable value according to the value of the right-shift first parameter and the values of the length, width and height of the root node.
- the attribute information of the point cloud is comprehensively considered to determine the Nth layer for layering the point cloud data.
- the maximum allowable value is set by judging the relationship between the Nth layer and the target length.
- the maximum allowable value for dividing the point cloud is determined, including the following two implementations:
- Method 1 In the way of LOD layering of point cloud data according to Morton code, it can be achieved through the following steps:
- the first step is to set the maximum value of the root node dimension to the maximum value of the length, width and height of the root node.
- the point cloud is processed to finally determine the size of the node in the Nth layer. If the difference between the size of the node and the size of the root node is small, or the two are equal, the number of layers where the Nth layer is located is determined as the maximum allowable value.
- the value of the second parameter of right shift is determined.
- shifting the value of the second parameter to the right can be understood as a fine-tuning amount for the value of the first parameter shifted to the right.
- the initial sampling of each block is determined.
- the value of the second parameter of the right shift can be obtained by subtracting the initial sampling distance and the value of the first parameter of the right shift.
- the point cloud data when encoding the point cloud data, first, the point cloud data is divided into multiple small modules, and then, in the geometric information, the initial sampling distance of each block in the point cloud is determined, Sum the initial sampling distances of multiple modules, and determine the difference between the sum of the initial sampling distances and the first parameter of the right-shift as the second parameter of the right-shift, that is, the right-shift of the second parameter can be understood as a right-shifted second parameter.
- the third step is to set the difference between the maximum value of the root node dimension and the first right-shift parameter and the second right-shift parameter as the maximum allowable value.
- the first right-shift parameter and the right-shift second parameter are summed, for example, according to the input initial division distance and the total number of division layers, the point cloud is calculated to determine the initial sampling distance and value.
- the second right-shift parameter abh.attr_dist2_delta is calculated according to the first right-shift parameter aps.dist2 and the input point cloud, and then the initial right-shift parameter is calculated according to aps.dist2 and abh.attr_dist2_delta Bit shiftbits0.
- the maximum allowable value can be determined by the following process:
- Step A determine the header file function of the attribute information.
- the point cloud data is processed to obtain the header file function (for example, abh.attr_dist2_delta) .
- This header file function is used to characterize the attribute parameters of the point cloud data.
- step B the value of the header file function and the parameter value corresponding to the attribute information are added to obtain the initial sampling distance and value.
- the value of abh.attr_dist2_delta (corresponding to the value of the second parameter of the right shift) is added to the parameter value corresponding to the attribute information, and the result obtained by the addition is used as the initial right shift number. In this way, by processing the point cloud data according to the input attribute information, the initial right shift number when dividing the point cloud is determined.
- Step C subtract the maximum value of the root node dimension from the initial sampling distance and value to obtain the maximum allowable value.
- step C can be achieved by the following process:
- Step C1 according to the initial sampling distance and value, determine the node to which the Nth layer for dividing the point cloud belongs.
- N is an integer greater than or equal to 2; on the basis of obtaining the initial right shift number, each time a layer is divided, the initial right shift number increases by 1, and the size of the corresponding leaf node increases by 2 times.
- the initial right shift number is shiftbits0
- the corresponding node size is 2 shiftbits0 .
- the process of determining the node to which the Nth layer belongs is as follows:
- the size information of the node to which the initial layer for layering the point cloud code stream belongs is determined.
- the preset base as the base
- take the initial right shift number as the exponent
- take the obtained result as the size of the node to which the initial layer for layering the point cloud code stream belongs; for example, take 2 as the base and shiftbits0 as the initial Right shift number, then the size of the node to which the initial layer for layering the point cloud code stream belongs is 2 shifts0 .
- the difference in the number of layers between the Nth layer and the initial layer is determined.
- the difference is N-1.
- the size information of the node to which the initial layer belongs is adjusted according to the difference in the number of layers, so as to obtain the adjusted size information.
- the difference with the number of layers is N-1
- the number of bits shifted to the right of the Nth layer is shiftbits0+(N-1).
- 2 shiftbits0 increase 2 N-1 times to obtain the adjusted size Information 2 N-1+shifbits0 .
- the node to which the Nth layer belongs is determined.
- the resizing information is taken as the size of the node to which the Nth layer belongs. For example, take 2 N-1+shiftbits0 as the size of the node to which the Nth layer belongs.
- Step C2 Determine the maximum allowable value according to the node to which the Nth layer belongs and the root node.
- the maximum number of layers is determined by comparing the size relationship between the size of the node to which the Nth layer belongs and the size of the root node.
- the maximum allowable value is determined according to the node to which the Nth layer belongs and the root node, which can be implemented through the following process:
- the size information of the root node is determined.
- the size information of the root node is the length of the longest side in the bounding box.
- the size between the adjusted size information and the size information of the root node is compared, and the size information of the root node and the adjusted size information are subtracted to obtain a first difference value.
- the adjusted size information is 2 N-1+shifbits0
- the size information of the root node is 2 maxRootNodeDimLog2
- the first difference is 2 maxRootNodeDimLog2 -2 N-1+shifbits0 .
- the first difference is less than or equal to the first preset threshold, it is determined that the number of layers corresponding to the Nth layer is the maximum allowable value.
- the first preset threshold is an integer close to 0, that is, when the first difference is close to 0, it indicates that the size of the node to which the Nth layer belongs is very close to the size of the root node, and further indicates that the size of the node corresponding to the Nth layer is close to that of the root node.
- the number of layers is already the maximum number of layers for layering the point cloud code stream. In this way, the number of layers corresponding to the Nth layer whose size is very close to the size of the root node is taken as the maximum allowable value.
- the attribute information of the cloud adaptively sets the range of the syntax element lifting_num_detail_levels_minus1.
- the point cloud data is processed by using the attribute parameter set of the input point cloud to determine the initial right shift number of the point cloud; on the basis of the initial right shift number, the corresponding node of the initial division layer is determined Then, each time a layer is divided, the initial right shift number increases, and the size of the node corresponding to the divided layer also increases, so that the number of bits shifted to the right of the Nth layer and the size of the corresponding node of the Nth layer can be determined, and finally , and set the maximum allowable value by comparing the size relationship between the size of the Nth layer node and the target length.
- Method 2 In the method of LOD layering of point cloud data according to the sampling distance, first, the sampling distance of the Nth layer is determined by combining the ratio of the initial sampling distance in the attribute information and the sampling distance of two adjacent layers ; Then, by comparing the size relationship between the sampling distance of the Nth layer and the target length, set the maximum allowable value, which can be achieved by the following steps:
- Step A Determine the value of the diagonal distance of the root node according to the values of the length, width and height of the root node.
- the length of the longest diagonal in the bounding box is determined as the target length.
- the size of the root node in the attribute information of the point cloud code stream determine the lengths of the three mutually perpendicular sides in the bounding box, and according to the lengths of the three sides, determine the length between the two furthest vertices in the bounding box , that is, the length of the longest diagonal, so as to obtain the target length.
- the size of the root node is 2 maxRootNodeDimLog2
- Step B Determine the maximum allowable value according to the value of the diagonal distance of the root node and the value of the first right-shift parameter.
- step B can be implemented by the following steps:
- Step B1 determine the first ratio.
- the first ratio is the ratio between the value of the diagonal distance of the root node and the arithmetic square root of the value of the right-shift first parameter.
- the ratio between the sampling distances of the first layer and the second layer may be set to be the same, for example, both are P. In other embodiments, the ratio between the sampling distances between each two adjacent layers may also be set to be different.
- Step B2 determining the logarithmic value of the first ratio.
- the logarithm of the first ratio can be understood as the sampling distance of the Nth layer. According to the length of the longest diagonal in the bounding box and the first ratio, the sampling distance of the Nth layer can be determined. For example, by multiplying the initial sampling distance by the first ratio, the sampling distance of the next layer can be determined, and so on, the sampling distance of the Nth layer can be determined.
- the first ratio between the sampling distances of adjacent detail levels is determined according to the geometric information of the point cloud, and the first ratio is set according to the sparseness of the point cloud coordinates in the geometric information of the point cloud.
- the first ratio can be set to any number greater than 1 to ensure that in the process of layering the point cloud, the collection of the point cloud is sparse layer by layer as the number of layers increases.
- Step B3 determining the logarithmic value as the maximum allowable value.
- the base corresponding to the logarithmic value is set as the ratio between the sampling distances of adjacent LODs.
- the Nth layer is the last layer for layering the point cloud, that is, the number of layers corresponding to the Nth layer is the maximum allowable value.
- the maximum allowable value can be set by the longest diagonal of the bounding box, which can be achieved by the following process:
- the first step is to determine the side lengths of the three perpendicular sides of the bounding box.
- the bounding box is a cube
- the three sides in the bounding box that are perpendicular to each other can be understood as the length, width and height of the cube.
- the second step is to determine the length of the longest diagonal line based on the lengths of the three sides.
- the length of the three perpendicular sides in the bounding box is used to determine the length of the longest diagonal, and then the target length can be obtained. to set the maximum allowable value.
- the sampling distance of the Nth layer can be determined by the sampling distance and the sampling distance ratio of two adjacent layers, which can be realized by the following process:
- the first step is to obtain sampling distances of at least two adjacent layers to obtain a sampling distance set.
- the sampling distances of multiple adjacent layers are determined by analyzing the initial sampling distance and the total number of sampling layers included in the attribute information. For example, the sampling distance between the first layer and the second layer, the sampling distance between the third layer and the fourth layer, the sampling distance between the fifth layer and the sixth layer, etc. are obtained respectively, forming a sampling distance set. That is, the sampling distance set includes sampling distances of multiple adjacent layers.
- the ratio between the sampling distances of two adjacent layers in the sampling distance set is determined to obtain a preset sampling distance ratio.
- the ratio of the sampling distances of two adjacent layers in the sampling distance set is calculated to obtain the ratio of the sampling distances between the two adjacent layers.
- the ratio of sampling distances between every two adjacent layers is the same, and the same ratio is used as the preset sampling distance ratio.
- the preset distance ratio may be obtained by calculating the ratio of sampling distances of two adjacent layers in this way, or may be preset.
- the sampling distance of the Nth layer is determined according to the preset sampling distance ratio and the initial sampling distance in the attribute information.
- the layer number difference between the Nth layer and the layer corresponding to the initial sampling distance in the attribute information determines the layer number difference and the preset sampling distance ratio, and finally, multiply the product result with the target length Multiply to get the sampling distance of the Nth layer. For example, if the layer number difference between the Nth layer and the layer corresponding to the initial sampling distance is N-1, and the preset sampling distance ratio is P, then the sampling distance of the Nth layer is P N-1 D 1 .
- the sampling distance ratio is determined by acquiring the sampling distances of two adjacent layers in the attribute information, and the sampling distance of the Nth layer is determined in combination with the initial sampling distance;
- the maximum allowable value can be set by determining the sampling distance of each layer.
- the maximum allowable value can be set by judging the relationship between the sampling distance of the Nth layer and the target length, which can be achieved through the following process:
- the second difference between the sampling distance of the Nth layer and the target length is determined.
- the difference between the sampling distance of the Nth layer and the longest diagonal of the bounding box is determined to obtain the second difference.
- the sampling distance of the Nth layer is P N-1 D 1
- the longest diagonal of the bounding box is The second difference
- the second step if the second difference is less than or equal to the second preset threshold, determine the number of layers corresponding to the Nth layer as the maximum allowable value.
- the second preset threshold is a positive number close to 0, which may be the same as or different from the first preset threshold. If the second difference is less than or equal to the second preset threshold, it means that the sampling distance of the Nth layer is very close to the length of the longest diagonal of the bounding box, which means that the Nth layer is the last layer of layering the point cloud code stream. One layer, so that the number of layers corresponding to the Nth layer can be taken as the maximum allowable value.
- the value of the first syntax element is determined within the maximum allowable value range. That is, when receiving an instruction for setting the number of layers input by the user, a layer number can be selected as the value of the first syntax element within the maximum allowable value; for example, the maximum allowable value is [0, 20], then 18 can be selected as the value of the first syntax element. Then, the point cloud is divided according to the value of the first syntax element.
- the maximum number of layers that can be divided into the point cloud data is adaptively determined, thereby specifying the maximum allowable layering of the point cloud data.
- the number of LOD division layers set by the user can be checked at the encoding end and the decoding end, and the consistency between the number of division layers set by the user and the actual number of division layers can be increased.
- the method after setting the maximum allowable value for layering point cloud data, the number of LOD division layers set by the user can be checked at the encoding end and the decoding end, so as to increase the consistency of the system, That is, after dividing the point cloud code stream according to the maximum allowable value, the method further includes the following process:
- the first step is to obtain the input preset number of layers for layering the point cloud.
- the preset number of layers for layering the point cloud code stream by the user when the user layers the point cloud, the preset number of layers for layering the point cloud code stream by the user can be obtained.
- the preset number of layers for layering the point cloud code stream set by the user is 30.
- the validity of the preset number of layers is determined according to the maximum allowable value.
- the preset number of layers is within the maximum allowable value. If the preset number of layers is within the maximum allowable value, it is determined that the preset number of layers is legal, that is, the preset number of layers is available. If the preset number of layers is not within the maximum allowable value, it is determined that the preset number of layers is illegal, that is, the preset number of layers is unavailable. In a specific example, if the preset number of layers is 30 and the maximum allowable value is 21, it means that the preset number of layers is illegal.
- the point cloud is layered according to the preset number of layers.
- the preset number of layers is less than or equal to the maximum allowable value, that is, the preset number of layers is within the maximum allowable value, indicating that the preset number of layers is available, then the point cloud can be layered according to the preset number of layers.
- the number of LOD division layers set by the user can be checked at the encoding end and the decoding end, thereby improving the consistency between the expected number of LOD division layers set by the user and the actual number of LOD division layers.
- FIG. 3 is a schematic diagram of the point cloud compression encoding process according to an exemplary embodiment of the present application, and the following description is made in conjunction with the steps shown in FIG. 3 :
- Step S301 Divide the point cloud into geometric information and attribute information corresponding to each point.
- G-PCC Geometry-based Point Cloud Compression
- step S302 coordinate transformation is performed on the geometric information.
- the geometric information is coordinate transformed so that the point cloud is all contained in a bounding box.
- Step S303 voxelize the geometric information after coordinate transformation.
- voxelizing the geometric information after coordinate transformation can be understood as quantizing the geometric information after coordinate transformation.
- This step of quantization mainly plays the role of scaling. Due to the rounding of quantization, the geometric information of some points is the same. Determine whether to remove duplicate points, quantify and remove duplicate points according to the parameters.
- Step S304 perform octree division on the bounding box.
- octree division is performed on the bounding box.
- the bounding box is divided into eight sub-cubes, and the non-empty sub-cubes (including points in the point cloud) are divided into eight equal parts until the obtained leaf nodes are divided into eight equal parts.
- the point is a 1x1x1 unit cube
- the division is stopped, and the point in the leaf node is encoded to generate a binary code stream.
- step S305 arithmetic coding is performed on the leaf nodes to obtain a plurality of intersection points.
- the octree division is also performed first, but different from the geometric information coding based on the octree, this method does not require the point cloud to be graded. It is divided into a unit cube with a side length of 1 ⁇ 1 ⁇ 1, but is divided into a sub-block (block) when the side length is W, and the division is stopped. According to the surface formed by the distribution of point clouds in each sub-block, the surface and the sub-block are obtained. Up to twelve vertices generated by the twelve edges of the block. The intersection coordinates of each sub-block are encoded in turn to generate a binary code stream.
- Step S306 encoding the intersection coordinates of each sub-block to generate a binary code stream.
- intersection coordinates of each sub-block are encoded to generate a geometric bitstream.
- step S301 to S306 complete the process of encoding the geometric information. After the geometric encoding is completed, the geometric information is reconstructed, that is, step S307 is entered.
- step S307 the geometric information is reconstructed.
- the reconstruction of the geometric information can be understood as decoding the encoded bit stream to obtain the decoded geometric information, that is, the reconstructed geometric information.
- attribute encoding is mainly performed on color information.
- Step S308 Convert the color information in the attribute information from the RGB color space to the YUV color space.
- step S309 the point cloud is recolored by using the reconstructed geometric information, so that the uncoded attribute information corresponds to the reconstructed geometric information.
- the color information coding there are mainly two transformation methods.
- One is to realize the lifting transformation according to the distance depending on the LOD division in the generation level of detail division module (LOD) 310, and the other is to directly perform regional adaptive layering.
- Transform (Region Adaptive Hierarchal Transform, RAHT) 311 transform
- these two methods will convert the color information from the spatial domain to the frequency domain, and obtain high-frequency coefficients and low-frequency coefficients through transformation.
- the coefficients are quantized and encoded to generate a binary code stream.
- step S312 the color information is converted from the spatial domain to the frequency domain to obtain high-frequency coefficients and low-frequency coefficients for quantization.
- Step S313 perform arithmetic coding on the quantized result.
- Step S314 according to the result of arithmetic coding, generate an attribute bit stream.
- steps S308 to S314 implement the process of encoding attribute information, and the encoding of attribute information is divided into three modes: prediction mode, boost mode and RAHT mode.
- prediction mode and boost mode LOD partitioning of the point cloud is required.
- LOD is to divide the point cloud into a series of enhancement layers and detail layers according to a certain method, as shown in FIG. 4 , which is a schematic diagram of the implementation flow of LOD division according to an exemplary embodiment of the present application, and the following description is made with reference to FIG. 4 . :
- LOD1 For the point set 401 (LOD1), it is divided into a set A1 representing the detailed information of the point cloud, and a point set 402 (LOD2) representing the skeleton information of the point cloud; then, for the point set 402, it is divided into a set A1 representing the point cloud A set A2 of detail information, and a set of points 403 (LOD3) representing skeleton information of the point cloud.
- the number of LOD division layers is not specified, and is manually set by the user, but at the same time, the range of the LOD division layers is not specified.
- the number of division layers of the LOD is often set to a large number, which causes the setting value to often not match the actual number of division layers.
- an exemplary embodiment of the present application provides a point cloud layering method.
- the maximum range of the syntax element lifting_num_detail_levels_minus1 is limited, and the maximum value MAX_minus1 of lifting_num_detail_levels_minus1 is defined, and the interval is 0 to MAX_minus1.
- FIG. 5 is a schematic structural diagram of LOD division according to Morton code provided by an exemplary embodiment of the present application, and the following description is made with reference to FIG. 5 :
- the box 501 in FIG. 5 represents the bounding box of the point cloud, and the dotted line 502 is a cube whose side length is the longest side of the bounding box.
- the size of the bounding box of the point cloud can be obtained according to the encoding of the geometric information, and a cube is constructed according to the longest side, which is the root node of the point cloud.
- shiftbits0 aps.dist2+abh.attr_dist2_delta(3);
- the first right shift number shiftbits is shiftbits0, and the corresponding node size is 2 shiftbits0 , which is represented as A in Figure 5.
- the shiftbits is increased by 1 for each layer divided; and for each right shift by 1 bit, the side length of the node is increased by 2 times that of the node in the previous layer, which is represented as 2A in Figure 5.
- shiftbits shiftbits0+(N-1), and the node size is 2 N-1+shiftbits0 at this time.
- the condition for the termination of LOD division is: when the root node is divided, the LOD division ends, and the size of the root node is 2 maxRootNodeDimLog2 at this time, and formula (4) can be obtained:
- the maximum number of LOD levels that can be divided is calculated adaptively according to the content of the point cloud, and the range of the syntax element lifting_num_detail_levels_minus1 is clearly defined.
- the levelOfDetailCount parameter LOD division layers to check, which increases the consistency of the system.
- FIG. 6 is a schematic structural diagram of LOD division according to distance according to an exemplary embodiment of the present application , the following description is made in conjunction with Figure 6:
- the distance between the two farthest points (point 602 and point 603) in the point cloud can be approximated according to the bounding box 601, and the point 602
- the distance between the two far points is set to maxDist as shown in formula (8):
- the maximum value MAX_minus1 should be max(N)-1, which can be expressed as formula (9):
- MAX_minus1 can be expressed as formula (10):
- the maximum number of LOD levels that can be divided is calculated adaptively according to the content of the point cloud, and the range of the syntax element lifting_num_detail_levels_minus1 is clearly defined; thus, the LOD level set by the user can be divided at the encoding end. Check and improve the consistency between the expected LOD division level set by the user and the actual LOD division level.
- an embodiment of the present application provides a decoder 1, including:
- the first receiving module 701 is configured to receive a point cloud code stream, wherein the point cloud code stream includes: geometric information and attribute information of the point cloud code stream;
- a first determining module 702 configured to determine the maximum allowable value of the first syntax element contained in the point cloud code stream
- a first parsing module 703 configured to parse the point cloud code stream, and determine the value of the first syntax element according to the maximum allowable value
- a second determining module 704 configured to determine, according to the value of the first syntax element, the number of levels of detail in the process of decoding the attribute information
- the first decoding module 705 is configured to decode the attribute information according to the quantity of the detail level and the geometric information, and obtain the reconstructed point cloud of the point cloud code stream.
- the first determining module 702 is further configured to: parse the point cloud code stream to obtain a compliance parameter; according to the difference between the compliance parameter and the maximum allowable value According to the corresponding relationship, the maximum allowable value is determined; wherein, the compliance parameter includes at least one of the following parameters: grade, level, and level.
- the first determining module 702 is further configured to: set the maximum allowable value as a preset constant value, where the constant value is an integer greater than 0.
- the method further includes: the constant value is an integer greater than 0 and less than or equal to a preset threshold.
- the first determining module 702 is further configured to: parse the point cloud code stream to determine the values of the length, width and height of the root node; parse the point cloud code stream, Determine the value of the first right-shift parameter; determine the maximum allowable value according to the value of the right-shift first parameter and the length, width and height of the root node.
- the first parsing module 703 is further configured to: parse the point cloud code stream, and determine an initial sampling distance used to characterize the point cloud code stream; , which is determined as the value of the first parameter of the fixed right shift.
- the first determining module 702 is further configured to:
- the geometric information contained in the point cloud code stream is parsed, and the values of the length, width and height of the root node are determined.
- the first determining module 702 is further configured to:
- the unit header information in the geometric information is parsed, and the values of the length, width and height of the root node are determined.
- the first determining module 702 is further configured to: set the maximum value of the root node dimension to the maximum value among the three values of the length, width and height of the root node; Parse the point cloud code stream to determine the value of the second right-shift parameter; set the maximum allowable value as the maximum value of the root node dimension, the right-shift first parameter and the right-shift second parameter difference.
- the first determining module 702 is further configured to: parse the point cloud code stream, determine the initial sampling distance of each block in the point cloud code stream; The sum of the initial sampling distances of a block is obtained to obtain the sum of the initial sampling distances; the difference between the sum of the initial sampling distances and the first right-shift parameter is determined as the second right-shift parameter.
- the first determining module 702 is further configured to: determine the value of the diagonal distance of the root node according to the values of the length, width and height of the root node; The value of the diagonal distance of the root node and the value of the first parameter of the right shift are used to determine the maximum allowable value.
- the first determining module 702 is further configured to: determine a first ratio, wherein the first ratio is the value of the diagonal distance of the root node and the right shift A ratio between the arithmetic square roots of a parameter value; determining a logarithmic value of the first ratio; determining the logarithmic value as the maximum allowable value; wherein, the base corresponding to the logarithmic value is set as the adjacent level of detail The ratio between the sampling distances.
- the first determining module 702 is further configured to: analyze the point cloud, and determine the first ratio between the sampling distances of the adjacent LODs.
- the first determining module 702 is further configured to: determine the number of bits N corresponding to the first syntax element in the code stream according to the maximum allowable value; from the point Read N bits from the cloud code stream, and convert the N bits into the value of the first syntax element.
- the first determining module 702 is further configured to: determine the minimum number of bits required to represent the maximum allowable value by using an unsigned binary number; It is determined as the number N of bits.
- the first determining module 702 is further configured to: set the value of the first syntax element to a value corresponding to the N-bit unsigned binary number.
- the first determining module 702 is further configured to: compare the size between the value of the first syntax element and the maximum allowable value; when the value of the first syntax element is When the value is greater than the maximum allowable value, abnormal error report information is generated.
- the first decoding module 705 is further configured to: determine the reconstruction value of one or more levels of detail in the point cloud code stream according to the number of the detail levels and the geometric information; A reconstructed point cloud of the point cloud is obtained according to the reconstructed values of the one or more levels of detail.
- the first decoding module 705 is further configured to:
- the point cloud code stream is divided into detail levels to obtain reconstruction values of the one or more detail levels.
- an embodiment of the present application further provides a decoder, including: a first memory 721 and a first processor 722; the first memory 721 stores data that can be stored in the first processor A computer program running on 722, when the first processor 722 executes the program, a point cloud layering method on the decoder side.
- an encoder 2 including:
- the first acquisition module 801 is used to acquire geometric information and attribute information of the point cloud
- a first determination module 802 configured to determine the maximum allowable value of a first syntax element, wherein the first syntax element represents the number of levels of detail in the process of encoding the attribute information of the point cloud;
- a first division module 803, configured to perform sub-level division on the point cloud according to the maximum allowable value and the geometric information of the point cloud, and determine the value of the first syntax element
- a first encoding module 804 configured to encode the point cloud according to the subdivision level division of the point cloud to generate a code stream
- the second encoding module 805 is configured to encode the value of the first syntax element, and write the encoded bits into the code stream.
- the first determination module 802 is further configured to: determine a compliance parameter of the point cloud; wherein the compliance parameter includes at least one of the following parameters: grade, level, and level ; determine the maximum allowable value according to the correspondence between the compliance parameter and the maximum allowable value; encode the compliance parameter, and write the encoded bits into the code stream.
- the first determining module 802 is further configured to: set the compliance parameter according to the configuration parameter of the encoder.
- the first determining module 802 is further configured to: set the compliance parameter according to the parameter determined in the session negotiation process.
- the first determining module 802 is further configured to: set the maximum allowable value as a preset constant value, where the constant value is an integer greater than 0.
- the first determining module 802 is further configured to: set the preset constant value according to the configuration parameter of the encoder; the constant value is greater than 0 and less than or An integer equal to the preset threshold.
- the first determining module 802 is further configured to: determine the length, width and height of the root node; value; the maximum allowable value is determined according to the value of the first right-shift parameter and the values of the length, width and height of the root node.
- the first determining module 802 is further configured to: in the geometric information, determine an initial sampling distance used to characterize the point cloud; and determine the initial sampling distance as The fixed right shifts the value of the first parameter.
- the first determining module 802 is further configured to: determine the bounding box of the point cloud according to the geometric information of the point cloud; and determine the point cloud according to the bounding box to obtain the values of the length, width and height of the root node of the point cloud.
- the first determining module 802 is further configured to: determine a target length in the bounding box size that satisfies a preset condition; and create a root node of the point cloud according to the target length .
- the first determining module 802 is further configured to: determine the length of the longest side of the bounding box as the target length.
- the first determining module 802 is further configured to: encode the values of the length, width and height of the root node, and write the encoded bits into the code stream.
- the first determining module 802 is further configured to: write the encoded bits into the geometry data unit header information in the code stream.
- the first determining module 802 is further configured to: set the maximum value of the length, width and height of the root node as the maximum dimension of the root node; Determine the value of the second right-shift parameter according to the geometric information of the point cloud; set the difference between the maximum value of the root node dimension and the right-shift first parameter and the right-shift second parameter as the maximum allowable value.
- the first determining module 802 is further configured to: in the geometric information, determine the initial sampling distance of each sub-block in the point cloud; calculate the each sub-block The sum of the initial sampling distances is obtained to obtain the sum of the initial sampling distances; the difference between the sum of the initial sampling distances and the first right-shift parameter is determined as the second right-shift parameter.
- the first determining module 802 is further configured to: determine the value of the diagonal distance of the root node according to the values of the length, width and height of the root node; The value of the diagonal distance of the root node and the value of the first parameter of the right shift are used to determine the maximum allowable value.
- the first determining module 802 is further configured to: determine a first ratio, where the first ratio is equal to the value of the diagonal distance of the root node and the right shift The ratio between the arithmetic square roots of a parameter value; the logarithm value of the first ratio is calculated, and the maximum allowable value is set as the logarithmic value; wherein, in the calculation of the logarithmic value operation, the base is set to the relative value.
- the first encoding module 804 is further configured to: determine the first ratio between the sampling distances of the adjacent LODs according to the geometric information of the point cloud.
- the first determining module 802 is further configured to: determine the number N of bits occupied by the first syntax element in the code stream according to the maximum allowable value; A syntax element value is converted into N bits, and the N bits are written into the code stream.
- the first determining module 802 is further configured to: determine the minimum number of bits required to represent the maximum allowable value by using an unsigned binary number; Determined to be the number N of bits.
- the first determining module 802 is further configured to: convert the value of the first syntax element into a bit corresponding to the N unsigned binary numbers.
- the value of the first syntax element is not greater than the maximum allowable value.
- the first division module 803 is further configured to obtain a Morton code set of the point cloud; according to the Morton code set and the geometric information, within the maximum allowable value range , determine the value of the first syntax element; perform subdivision level division on the point cloud according to the value of the first syntax element.
- an encoder including:
- the second memory 821 stores a computer program that can be executed on the second processor 822, and the second processor 822 implements the point cloud layering method on the decoder side when executing the program.
- an embodiment of the present application provides a storage medium on which a computer program is stored, and when the computer program is executed by the first processor, realizes the point cloud layering method of the encoder; or, the computer program is executed by the second processor. When executed by the processor, implements the point cloud layering method of the decoder.
- the point cloud layering method in an exemplary embodiment of the present application includes: receiving a point cloud code stream, wherein the point cloud code stream includes: geometric information and attribute information of the point cloud code stream; The maximum allowable value of the first syntax element included in the cloud code stream; parse the point cloud code stream, and determine the value of the first syntax element according to the maximum allowable value; obtain the value of the first syntax element according to the first syntax element value, determine the number of detail levels in the process of decoding the attribute information; decode the attribute information according to the number of detail levels and the geometric information, and obtain the reconstructed point cloud of the point cloud code stream.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
Claims (48)
- 一种点云分层方法,应用于解码器,所述方法包括:接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;确定所述点云码流中包含的第一语法元素的最大容许取值;解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
- 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:解析所述点云码流,获得符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
- 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
- 根据权利要求3所述的方法,还包括:所述常数值为大于0,且小于或等于预设阈值的整数。
- 根据权利要求1所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:解析所述点云码流,确定根节点的长度、宽度和高度的取值;解析所述点云码流,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
- 根据权利要求5所述的方法,所述解析所述点云码流,确定右移第一参数的取值,包括:解析所述点云码流,确定用于表征所述点云码流的初始采样距离;将所述初始采样距离,确定为所述右移第一参数的取值。
- 根据权利要求5所述的方法,所述解析所述点云码流,确定根节点的长度、宽度和高度的取值,包括:解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。
- 根据权利要求7所述的方法,所述解析所述点云码流的几何信息,确定根节点的长度、宽度和高度的取值,包括:解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。
- 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:将所述根节点维度最大值设置为所述根节点的长度、宽度和高度三个取值中的最大值;解析所述点云码流,确定右移第二参数的取值;将所述最大容许值设置为所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值。
- 根据权利要求9所述的方法,所述解析所述点云码流,确定右移第二参数的取值,包括:解析所述点云码流,确定所述点云码流中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
- 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
- 根据权利要求11所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值, 确定所述最大容许取值,包括:确定第一比值,其中,所述第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;确定所述第一比值的对数值;将所述对数值确定为所述最大容许取值;其中,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。
- 根据权利要求12所述的方法,所述确定第一比值,包括:解析所述点云,确定所述相邻细节层次的采样距离之间的所述第一比值。
- 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N;从所述点云码流中读取N个比特,将所述N个比特转换为所述第一语法元素的取值。
- 根据权利要求14所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:确定使用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
- 根据权利要求14所述的方法,所述从所述点云码流中读取N个比特,并将所述N个比特转换为所述第一语法元素取值,包括:将所述第一语法元素取值设置为所述N个比特的无符号二进制数所对应的数值。
- 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:比较所述第一语法元素取值与所述最大容许取值之间的大小;当所述第一语法元素取值大于所述最大容许取值时,生成异常错误报告信息。
- 根据权利要求1所述的方法,所述根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云,包括:根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值;根据所述一个或多个细节层次的重建值,获得所述点云的重建点云。
- 根据权利要求18所述的方法,所述根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值,包括:根据所述细节层次的数量和所述几何信息,对所述点云码流进行细节层次划分,获得所述一个或多个细节层次的重建值。
- 一种点云分层方法,用于编码器,所述方法包括:获取点云的几何信息和属性信息;确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;对所述第一语法元素取值进行编码,将编码比特写入码流。
- 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:确定所述点云的符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;对所述符合性参数进行编码,将编码比特写入所述码流。
- 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:根据编码器的配置参数,设置所述符合性参数。
- 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:根据会话协商过程中确定的参数,设置所述符合性参数。
- 根据权利要求20所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
- 根据权利要求24所述的方法,所述将所述最大容许取值设置为预设的常数值,还包括:根据所述编码器的配置参数,设置所述预设的常数值。
- 根据权利要求24所述的方法,还包括:所述常数值为大于0,且小于或等于预设阈值的整数。
- 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:确定根节点的长度、宽度和高度的取值;根据所述点云的几何信息,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
- 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第一参数的取值,包括:在所述几何信息中,确定用于表征所述点云的初始采样距离;将所述初始采样距离,确定为所述定右移第一参数的取值。
- 根据权利要求27所述的方法,所述确定根节点的长度、宽度和高度的取值,包括:根据所述点云的几何信息,确定所述点云的包围盒;根据所述包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
- 根据权利要求29所述的方法,所述根据所述包围盒,确定所述点云的根节点,包括:确定所述包围盒尺寸中满足预设条件的目标长度;根据所述目标长度,创建所述点云的根节点。
- 根据权利要求30所述的方法,所述确定所述包围盒尺寸中满足预设条件的目标长度,包括:将所述包围盒的最长边长的尺寸,确定为所述目标长度。
- 根据权利要求27所述的方法,还包括:对所述根节点的长度、宽度和高度的取值进行编码,将编码比特写入所述码流。
- 根据权利要求32所述的方法,还包括:将所述编码比特写入所述码流中的几何数据单元头信息中。
- 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:将所述根节点的长度、宽度和高度三个取值中的最大值设置为所述根节点维度最大值;根据所述点云的几何信息,确定右移第二参数的取值;将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
- 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第二参数的取值,包括:在所述几何信息中,确定所述点云中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
- 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
- 根据权利要求36所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值,包括:确定第一比值,其中,所述第一比值等于所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;计算所述第一比值的对数值,将所述最大容许取值设置为所述对数值;其中,所述计算对数值运算中,底数设置为相邻细节层次的采样距离的比值。
- 根据权利要求37所述的方法,还包括:根据所述点云的几何信息,确定所述相邻细节层次的采样距离之间的所述第一比值。
- 根据权利要求20所述的方法,所述对所述第一语法元素取值进行编码,将编码比特写入码流,包括:根据所述最大容许取值,确定所述第一语法元素在码流中占据的比特数N;将所述第一语法元素取值转换为N个比特,并将所述N个比特写入所述码流。
- 根据权利要求39所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:确定采用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
- 根据权利要求40所述的方法,所述将所述第一语法元素取值转换为N个比特,包括:将所述第一语法元素取值转换为使用所述N个无符号二进制数所对应的比特。
- 根据权利要求20所述的方法,所述第一语法元素取值不大于所述最大容许取值。
- 根据权利要求20或42所述的方法,所述根据所述最大容许取值,根据所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值之后,所述方法还包括:获取所述点云的莫顿码集合;根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;根据所述第一语法元素取值,对所述点云进行细分层次划分。
- 一种解码器,包括:第一接收模块,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;第一确定模块,用于确定所述点云码流中包含的第一语法元素的最大容许取值;第一解析模块,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;第二确定模块,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;第一解码模块,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
- 一种编码器,包括:第一获取模块,用于获取点云的几何信息和属性信息;第一确定模块,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;第一划分模块,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;第一编码模块,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;第二编码模块,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
- 一种解码器,包括:第二存储器和第二处理器;所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现权利要求1至19任一项所述点云分层方法。
- 一种编码器,包括:第一存储器和第一处理器;所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现权利要求20至43任一项所述点云分层方法。
- 一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现权利要求1至19任一项所述点云分层方法;或者,该计算机程序被第二处理器执行时,实现权利要求20至43任一项所述点云分层方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310888271.4A CN116744013A (zh) | 2020-09-30 | 2020-09-30 | 一种点云分层方法及解码器、编码器、存储介质 |
CN202080105639.XA CN116261856A (zh) | 2020-09-30 | 2020-09-30 | 一种点云分层方法及解码器、编码器、存储介质 |
JP2023519889A JP7520223B2 (ja) | 2020-09-30 | 2020-09-30 | 点群階層化方法、デコーダ、エンコーダ及び記憶媒体 |
KR1020237014820A KR20230079188A (ko) | 2020-09-30 | 2020-09-30 | 포인트 클라우드 레이어링 방법 및 디코더, 인코더, 저장 매체 |
PCT/CN2020/119707 WO2022067790A1 (zh) | 2020-09-30 | 2020-09-30 | 一种点云分层方法及解码器、编码器、存储介质 |
US18/128,227 US11983905B2 (en) | 2020-09-30 | 2023-03-30 | Methods for level partition of point cloud, and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/119707 WO2022067790A1 (zh) | 2020-09-30 | 2020-09-30 | 一种点云分层方法及解码器、编码器、存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/128,227 Continuation US11983905B2 (en) | 2020-09-30 | 2023-03-30 | Methods for level partition of point cloud, and decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022067790A1 true WO2022067790A1 (zh) | 2022-04-07 |
Family
ID=80949480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/119707 WO2022067790A1 (zh) | 2020-09-30 | 2020-09-30 | 一种点云分层方法及解码器、编码器、存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11983905B2 (zh) |
JP (1) | JP7520223B2 (zh) |
KR (1) | KR20230079188A (zh) |
CN (2) | CN116261856A (zh) |
WO (1) | WO2022067790A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063459A (zh) * | 2022-08-09 | 2022-09-16 | 苏州立创致恒电子科技有限公司 | 点云配准方法及装置、全景点云融合方法及*** |
CN115175248A (zh) * | 2022-09-06 | 2022-10-11 | 北京智芯微电子科技有限公司 | 用于通信***的定点数据压缩、解压方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140198097A1 (en) * | 2013-01-16 | 2014-07-17 | Microsoft Corporation | Continuous and dynamic level of detail for efficient point cloud object rendering |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN109257604A (zh) * | 2018-11-20 | 2019-01-22 | 山东大学 | 一种基于tmc3点云编码器的颜色属性编码方法 |
US20190081638A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Hierarchical point cloud compression |
CN110418135A (zh) * | 2019-08-05 | 2019-11-05 | 北京大学深圳研究生院 | 一种基于邻居的权重优化的点云帧内预测方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6331826B1 (en) * | 2000-01-04 | 2001-12-18 | International Business Machines Corporation | Method for providing an improved run-length encoding algorithm for data compression |
CN103077549B (zh) | 2012-10-24 | 2016-12-21 | 华南理工大学 | 一种基于kd树的实时大规模地形可视化实现方法 |
WO2019235587A1 (ja) | 2018-06-08 | 2019-12-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
CA3134855A1 (en) * | 2019-06-26 | 2020-12-30 | Tencent America LLC | Implicit quadtree or binary-tree geometry partition for point cloud coding |
US20220366610A1 (en) | 2019-07-02 | 2022-11-17 | Lg Electronics Inc. | Point cloud data processing method and apparatus |
US11350132B2 (en) * | 2020-01-08 | 2022-05-31 | Qualcomm Incorporated | High level syntax for geometry-based point cloud compression |
CN111641984B (zh) | 2020-05-28 | 2022-11-04 | 哲库科技(北京)有限公司 | 一种小区选择方法及终端、存储介质 |
-
2020
- 2020-09-30 CN CN202080105639.XA patent/CN116261856A/zh active Pending
- 2020-09-30 KR KR1020237014820A patent/KR20230079188A/ko unknown
- 2020-09-30 CN CN202310888271.4A patent/CN116744013A/zh active Pending
- 2020-09-30 JP JP2023519889A patent/JP7520223B2/ja active Active
- 2020-09-30 WO PCT/CN2020/119707 patent/WO2022067790A1/zh active Application Filing
-
2023
- 2023-03-30 US US18/128,227 patent/US11983905B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140198097A1 (en) * | 2013-01-16 | 2014-07-17 | Microsoft Corporation | Continuous and dynamic level of detail for efficient point cloud object rendering |
US20190081638A1 (en) * | 2017-09-14 | 2019-03-14 | Apple Inc. | Hierarchical point cloud compression |
CN108470374A (zh) * | 2018-04-08 | 2018-08-31 | 中煤航测遥感集团有限公司 | 海量点云数据处理方法及装置 |
CN109257604A (zh) * | 2018-11-20 | 2019-01-22 | 山东大学 | 一种基于tmc3点云编码器的颜色属性编码方法 |
CN110418135A (zh) * | 2019-08-05 | 2019-11-05 | 北京大学深圳研究生院 | 一种基于邻居的权重优化的点云帧内预测方法及设备 |
Non-Patent Citations (1)
Title |
---|
D. MEHLEM (RWTH-AACHEN), C. ROHLFING (RWTH): "Versatile Video Coding for VPCC", 130. MPEG MEETING; 20200420 - 20200424; ALPBACH; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), 24 April 2020 (2020-04-24), XP030287078 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063459A (zh) * | 2022-08-09 | 2022-09-16 | 苏州立创致恒电子科技有限公司 | 点云配准方法及装置、全景点云融合方法及*** |
CN115063459B (zh) * | 2022-08-09 | 2022-11-04 | 苏州立创致恒电子科技有限公司 | 点云配准方法及装置、全景点云融合方法及*** |
CN115175248A (zh) * | 2022-09-06 | 2022-10-11 | 北京智芯微电子科技有限公司 | 用于通信***的定点数据压缩、解压方法、装置及设备 |
CN115175248B (zh) * | 2022-09-06 | 2023-01-24 | 北京智芯微电子科技有限公司 | 用于通信***的定点数据压缩、解压方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP7520223B2 (ja) | 2024-07-22 |
JP2023549447A (ja) | 2023-11-27 |
CN116261856A (zh) | 2023-06-13 |
CN116744013A (zh) | 2023-09-12 |
US20230237705A1 (en) | 2023-07-27 |
KR20230079188A (ko) | 2023-06-05 |
US11983905B2 (en) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552989B2 (en) | Point cloud attribute compression method based on KD tree and optimized graph transformation | |
CN108335335B (zh) | 一种基于增强图变换的点云属性压缩方法 | |
US9111333B2 (en) | Predictive position encoding | |
US11983905B2 (en) | Methods for level partition of point cloud, and decoder | |
US20140303944A1 (en) | Predictive position decoding | |
US11785216B2 (en) | Point cloud coding methods, encoder, and decoder | |
JP4672735B2 (ja) | 効果的なテクスチャマッピングのための3次元メッシュ情報のテクスチャ座標符号化及び復号化方法 | |
US11936909B2 (en) | Prediction method, encoder, decoder, and computer storage medium | |
US20220329833A1 (en) | Nearest neighbor search method, apparatus, device, and storage medium | |
CN114782564B (zh) | 一种点云的压缩方法、装置、电子设备及存储介质 | |
WO2020248176A1 (zh) | 点云处理的方法与装置 | |
WO2021218509A1 (zh) | 一种最近邻搜索方法、编码器、解码器及存储介质 | |
WO2022120594A1 (zh) | 点云编解码方法、编码器、解码器及计算机存储介质 | |
US20240257404A1 (en) | Methods for level partition of point cloud, and decoder | |
CN110349228B (zh) | 一种数据驱动最小二乘预测的三角网格压缩方法 | |
WO2022067782A1 (zh) | 一种点云数据的层次划分方法、编码器及存储介质 | |
WO2022217611A1 (zh) | 编解码方法及相关设备、存储介质 | |
CN116458158A (zh) | 帧内预测方法及装置、编解码器、设备、存储介质 | |
CN116941242A (zh) | 帧内预测方法及装置、编解码器、设备、存储介质 | |
Meftah et al. | Measuring errors for massive triangle meshes | |
CN118175319A (zh) | 点云编码方法、点云解码方法及相关设备 | |
WO2022131946A2 (en) | Devices and methods for spatial quantization for point cloud compression | |
CN116233468A (zh) | 点云解码方法、点云编码方法、装置、设备、介质及产品 | |
CN117321996A (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: 20955813 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2023519889 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 20237014820 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20955813 Country of ref document: EP Kind code of ref document: A1 |