WO2022067790A1 - 一种点云分层方法及解码器、编码器、存储介质 - Google Patents

一种点云分层方法及解码器、编码器、存储介质 Download PDF

Info

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
Application number
PCT/CN2020/119707
Other languages
English (en)
French (fr)
Inventor
万帅
魏磊
杨付正
丁晓斌
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Priority to JP2023519889A priority Critical patent/JP2023549447A/ja
Priority to PCT/CN2020/119707 priority patent/WO2022067790A1/zh
Priority to CN202080105639.XA priority patent/CN116261856A/zh
Priority to CN202310888271.4A priority patent/CN116744013A/zh
Priority to KR1020237014820A priority patent/KR20230079188A/ko
Publication of WO2022067790A1 publication Critical patent/WO2022067790A1/zh
Priority to US18/128,227 priority patent/US11983905B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree 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 Processing (AREA)
  • Image Generation (AREA)

Abstract

本申请一示例性实施例公开了一种点云分层方法,所述方法应用于解码器中,包括:接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;确定所述点云码流中包含的第一语法元素的最大容许取值;解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。本申请一示例性实施例还同时提供了一种编码器、解码器及存储介质。

Description

一种点云分层方法及解码器、编码器、存储介质 技术领域
本申请涉及视频编码领域,涉及但不限于一种点云分层方法及解码器、编码器、存储介质。
背景技术
在相关技术中,在点云属性细节层次(Level of Detail,LOD)划分的过程中,由用户手动设置对LOD的划分层数。在点云根据几何的点云压缩编码(Geometry-based Point Cloud Compression,G-PCC)框架的通用测试条件中,通常将LOD的划分层数设置为一个较大的数,这样,造成设置值与实际的划分层数不符。
发明内容
有鉴于此,本申请一示例性实施例为解决相关技术中存在的至少一个问题而提供一种点云分层方法及解码器、编码器、存储介质。
本申请一示例性实施例的技术方案是这样实现的:
第一方面,本申请一示例性实施例提供了一种点云分层方法,应用于解码器,包括:
接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
确定所述点云码流中包含的第一语法元素的最大容许取值;
解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
第二方面,本申请一示例性实施例提供了一种点云分层方法,应用于编码器,包括:
获取点云的几何信息和属性信息;
确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
对所述第一语法元素取值进行编码,将编码比特写入码流。
第三方面,本申请实施例提供一种解码器,包括:
第一接收模块,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
第一确定模块,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
第一解析模块,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
第二确定模块,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
第一解码模块,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
第四方面,本申请实施例提供一种编码器,包括:
第一获取模块,用于获取点云的几何信息和属性信息;
第一确定模块,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
第一划分模块,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
第一编码模块,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
第二编码模块,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
第五方面,本申请实施例提供一种解码器,包括:
第二存储器和第二处理器;
所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现第一方面所述点云分层方法。
第三方面,本申请实施例提供一种编码器,包括:
第一存储器和第一处理器;
所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现第二方面所述点云分层方法。
本申请一示例性实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述点云分层方法中的步骤。
附图说明
图1A为本申请一示例性实施例点云分层方法实现流程示意图;
图1B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图;
图2A为本申请实施例提供的一种点云分层方法的流程示意图;
图2B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图;
图3为本申请一示例性实施例点云压缩编码流程示意图;
图4为本申请一示例性实施例进行LOD划分的实现流程示意图;
图5为本申请一示例性实施例提供的根据莫顿码进行LOD划分的结构示意图;
图6为本申请一示例性实施例根据距离进行LOD划分的结构示意图;
图7A为本申请实施例一种解码器的硬件结构示意图;
图7B为本申请实施例另一种解码器的硬件结构示意图;
图8A为本申请实施例一种编码器的硬件结构示意图;
图8B为本申请实施例另一种编码器的硬件结构示意图。
具体实施方式
下面将结合本申请一示例性实施例中的附图,对本申请一示例性实施例中的技术方案进行清楚、完整地描述。
本申请一示例性实施例提出一种点云分层方法,该方法应用于具有前置摄像或者后置摄像功能的移动设备,所述移动设备可以以各种形式来实施。例如,本申请一示例性实施例中所描述的移动设备可以包括手机、平板电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等。另外,该方法所实现的功能可以通过移动设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该移动设备至少包括处理器和存储介质。
本申请实施例提供一种点云分层方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过视频解码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频解码设备至少包括处理器和存储介质。参见图1A,图1A为本申请一示例性实施例点云分层方法实现流程示意图,结合图1A进行以下说明:
步骤S101,接收点云码流。
这里,点云码流包括:所述点云的几何信息(geometry)和属性信息(Attribute)。点云码流可以理解为是需要进行分层的点云数据,比如,用于形成三维视频的点云数据等。对点云数据进行分层的方式可以是根据莫顿码实现,还可以是根据采样距离实现。在步骤S101中,点云码流的几何信息包括:点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等。属性信息包括:输入点云的划分距离的平方、划分总层数、颜色空间的信息、空间分辨率、点位精度和表面法向量等。
在一些可能的实现方式中,根据莫顿码实现对点云数据进行LOD分层的过程如下:
首先,假设变量(P i) i=1...N保存原始的输入点云,变量(M i) i=1....N为与每个点相关的莫顿值。并且设置D0和ρ分别为两个用户设置的初始参数,用于作为划分LOD距离阈值的参数,其中,ρ>1。其中计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量可以表示为公式(1)所示:
Figure PCTCN2020119707-appb-000001
其中,x l,y l,z l∈{0,1}分别是x,y,z的最高位(l=1)到最低位(l=d)对应的二进制数值。莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如下公式(2)所示:
Figure PCTCN2020119707-appb-000002
其中,m l'∈{0,1}分别是M的最高位(l'=1)到最低位(l'=3d)的值。在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列。变量I中保存着所有点的索引,该算法进行不断地迭代,在第k迭代时,属于LODk中的点会从LOD0到第LODk-1层中进行查找最近邻居。该算法的具体过程如下:
首先,初始化采样距离D=D 0
然后,在第k次迭代时,k=0,1…N-1(N为LOD划分的总层数)。变量L(k)保存属于第k层LOD中的点,变量O(k)属于比LODk层更高的点集。其中,L(k)和O(k)的计算步骤如下:
第一步,首先,O(k)和L(k)被初始化;
其中,L(k)被初始化为空集;O(k)初始化为空集。
第二步,每一次迭代按照变量I中保存点的索引进行遍历。每一次遍历都会计算当前点到集合O(k)中一定范围内所有点的距离。根据当前点所对应的莫顿序值,在集合O(k)的一个搜索范围SR1内进行查找(SR1代表根据莫顿序的搜索范围,一般为8,16,64),如果在该范围内查找到距离当前点距离小于阈值dl,就将当前的点加入到集合L(k)中,否则加入到集合O(k)中。
第三步,在每一次迭代的过程中,集合L(k)和O(K)分别进行计算,并且O(k)中的点会被用来作为集合L(k)中点的预测点,如此,实现对点云数据的LOD分层。假设集合R(k)=L(k)\L(k-1),其中R(k)代表LOD(k-1)与LOD(k)集合相差部分的点集。
在另一实现方式中,根据采样距离实现对点云数据进行LOD分层的过程如下:
LOD的生成过程是通过一组用户设置的不同距离阈值(d l) l=0...L-1将原始输入点云划分为不同的细化级别(R l) l=0...L-1。注意该距离阈值(d l) l=0...L-1需要满足两个条件:即,
Figure PCTCN2020119707-appb-000003
该LOD的划分过程是确定的,是在点云几何重建之后,这时候可以得到点云的几何坐标信息。该划分LOD的过程同时应用在点云的编码和解码端,LOD划分的具体过程如下:
1)首先,将所有的点标记为“未访问过”的点集,并且初始化“访问过”的点集为V为空集。
2)该算法过程是不断地进行迭代。每一次迭代l所对应的细化级别R l生成步骤如下所示:
第一步,该算法迭代遍历所有的点;
第二步,如果当前的点已经遍历过,则忽略该点;
第三步,否则,计算该点到集合V最近的距离D;
第四步,如果该最近距离D大于等于阈值d l,则将该点添加到细化级别R l和V中;
第五步,该过程进行不断地迭代直至所有的点都被遍历过。
3)第l个LOD集合,即LOD l是通过将精细化级别R 0,R 1, ....,R l中的点进行合并得到。
4)该过程进行不断地迭代直到所有的LOD生成或者所有的点都被遍历过,如此实现对点云数据的LOD分层。
步骤S102,确定点云码流中包含的第一语法元素的最大容许取值。
这里,最大容许取值用于指定属性编码的详细程度等级,可以是在0到X的范围之内,X为正整数。可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),确定点云码流进行分层的最大容许取值。或者将最大容许取值设定为常数,即根据该常数对点云码流进行LOD分层。
步骤S103,解析点云码流,根据最大容许取值,确定第一语法元素取值。
这里,对点云码流进行解析,获取到对该点云码流进行分层的最大容许取值。然后,可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),从最大容许取值中确定出第一语法元素取值,或者将第一语法元素取值设定为常数,即根据该常数对点云码流进行LOD分层。
在一些可能的实现方式中,确定第一语法元素取值的过程可以通过以下两种方式实现:
方式一:首先,解析所述点云码流,获得符合性(Conformance)参数。
这里,符合性参数用于表征该点云码流的自身属性,至少包括以下参数之一:档次、等级和级别。
然后,根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
这里,符合性参数与所述最大容许取值之间的对应关系,为预设的对应关系,包括:档次、等级和级别与最大容许取值之间的对应关系。在一个具体例子中,将级别划分为高中低三个等级,设定不同的等级对应不同的最大容许取值,等级越大对应的最大容许取值越高,比如,高等级对应的最大容许取值为31,中等级对应的最大容许取值为21,低等级对应的最大容许取值为16;档次和级别与最大容许取值之间的对应关系也可以如此设定。如此,可根据符合性参数与所述最大容许取值之间的对应关系,确定出最大容许取值。
方式二:将最大容许取值设置为预设的常数值,其中,常数值为大于0的整数。
在一些可能的实现方式中,常数值为大于0,且小于或等于预设阈值的整数。在一个具体例子中,预设阈值可以是31,在其他实施例中,预设阈值还可以取其他数值,比如,6、7、8、16、21、32或64等。
步骤S104,根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量。
这里,设定第一语法元素取值之后,可采用该取值减去1,作为对点云属性信息解码过程中细节层次的数量。
在一些实施例中,在确定第一语法元素取值之后,首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
步骤S105,根据细节层次的数量和点云的几何信息,对属性信息进行解码,获得点云的重建点云。
这里,细节层次的数量,可以理解为是对点云进行LOD分层的层数,通过综合考虑该层数和点云的几何信息,对点云的属性信息仅解码,实现点云重建。在一些可能的实现方式中,首先,根据细节层次的数量和点云的几何信息,确定点云中一个或多个细节层次的重建值。然后,根据所述一个或多个细节层次的重建值,获得点云的重建点云。比如,根据所述细节层次的数量和所述点云的几何信息,对所述点云进行细节层次划分,获得一个或多个细节层次的重建值。在一示例性实施例中,解码器在进行点云重建时,可以从码流中,解析出n个条带中每个条带交点位置信息,以及n个条带对应的点云信息,那么在点云模型的重建时,就可以根据n个条带中每个条带交点位置信息和n个条带对应的点云信息,进行点云模型的重建。
在本申请一示例性实施例中,通过获取点云的几何信息和属性信息,确定第一语法元素的最大容许取值,然后,根据最大容许取值和点云的几何信息,确定第一语法元素取值;最后,根据对点云的细分层次划分,对点云进行编码;并对第一语法元素取值进行编码,将编码比特写入码流。如此,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大容许取值,从而规定了对点云数据进行分层的第一语法元素的取值的范围,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些实施例中,在确定第一语法元素取值之后,即步骤S103之后,所述方法还包括以下过程:
首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
在一些实施例中,在根据莫顿码实现LOD划分的情况下,可根据点云数据的属性信息自适应的确定对点云数据进行分层的最大容许取值,即步骤S102,可以通过以下步骤实现,参见图1B,图1B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图,进行以下说明:
步骤S121,解析所述点云码流,确定根节点的长度、宽度和高度的取值。
这里,根节点表示点云中最深的节点,可以采用包围盒来表示。
在一些可能的实现方式中,解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。比如,解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。因为在编码侧,将根节点的长度、宽度和高度的取值编码写入几何信息中的单元头信息(其中,单元头信息可以表示为geometry_data_unit_header()),所以在解码侧可以通过解析几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。这里,在编码器中根据所述点云的几何信息,确定所述点云的包围盒,根据包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值,并将得到的点云的根节点的长度、宽度和高度的取值编码为码流写入单元头信息中。
步骤S122,解析所述点云码流,确定右移第一参数的取值。
这里,根据点云的几何信息,确定点云进行分层的右移第一参数的取值,比如,用户输入的初始采样距离。在一些可能的实现方式中,通过解析点云码流,确定点云的初始采样距离,将该初始采样距离设置为右移第一参数的取值。初始采样距离可以是用户设定的,也可以是根据点云的属性信息设定的。
步骤S123,根据右移第一参数的取值和根节点的长度、宽度和高度的取值,确定所述最大容许取值。
这里,无论是根据采样距离实现对点云数据进行LOD分层,还是根据莫顿码实现对点云数据进行LOD分层,综合考虑点云的属性信息确定对点云数据进行分层的第N层,通过判断第N层和目标长度之间的关系,来设定最大容许取值。
在一些可能的实现方式中,确定对点云码流进行划分的最大容许取值,包括以下两种实现方式:
方式一:在根据莫顿码实现对点云数据进行LOD分层的方式下,可以通过以下步骤实现:
第一步,将根节点维度最大值设置为根节点的长度、宽度和高度三个取值中的最大值。
这里,将根节点的长度、宽度和高度三个取值中的最大值(gbh.maxRootNodeDimLog2),设置为根节点维度最大值。通过属性信息中包括的:点云初始划分距离,划分总层数和颜色空间的变换等参数,对点云进行处理,以最终确定出第N层的节点的大小,如果第N层的节点的大小与根节点的大小之间的差值较小,或二者相等,那么将第N层所在的层数,确定为最大容许取值。
在该步骤中,在根据莫顿码实现LOD划分的场景下,通过对比第N层的节点的大小与根节点的大小之间的大小关系,自适应的确定出最大LOD可划分层数,明确规定了语法元素(lifting_num_detail_levels_minus1)的范围。
第二步,解析所述点云码流,确定右移第二参数的取值。
这里,右移第二参数的取值,可以理解为是对右移第一参数的取值的微调量,通过解析点云码流,确定每一分块的初始采样距离,并求和,将初始采样距离和值与右移第一参数相减,即可得到右移第二参数的取值。在一些可能的实现方式中,通过对点云数据进行编码时,首先,将点云数据划分为多个小模块,然后,在几何信息中,确定点云中每一分块的初始采样距离,并对多个模块的初始采样距离求和,将初始采样距离和值与右移第一参数的差值,确定为右移第二参数,即右移第二参数可以理解为是对右移第一参数进行微调的调整量。
第三步,将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述 最大容许值。
这里,对右移第一参数和右移第二参数进行求和,比如,根据输入的初始划分距离和划分总层数,对点云进行计算,以确定出该初始采样距离和值。在本申请一示例性实施例中,根据右移第一参数aps.dist2和输入点云进行计算得到右移第二参数abh.attr_dist2_delta,然后,根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0。
在一些可能的实现方式中,可以通过以下过程确定最大容许值:
步骤A,确定属性信息的头文件函数。
这里,根据属性信息中包括的输入参数(比如,云初始划分距离,划分总层数和颜色空间的变换等),对点云数据进行处理,得到该头文件函数(比如,得到abh.attr_dist2_delta)。该头文件函数用于表征点云数据的属性参数。
步骤B,将头文件函数的数值和属性信息对应的参数值相加,得到初始采样距离和值。
这里,将abh.attr_dist2_delta的数值(对应于右移第二参数的取值)与属性信息对应的参数值进行相加,将相加得到的结果作为初始右移位数。如此,通过根据输入的属性信息对点云数据进行处理,从而确定出对点云进行划分时的初始右移位数。
步骤C,将根节点维度最大值与该初始采样距离和值相减,得到最大容许值。
这里,步骤C可以通过以下过程实现:
步骤C1,根据初始采样距离和值,确定对点云进行划分的第N层所属的节点。
其中,N为大于等于2的整数;在得到初始右移位数的基础上,每划分一层,初始右移位数增加1,对应的叶子节点的大小增加2倍。比如,初始右移位数为shiftbits0,对应的节点大小为2 shifbits0,每划分一层,shiftbits0+1,对应的叶子节点增加为前一层节点的2倍;所以,当划分到第N层时,右移位数shiftbits=shiftbits0+(N-1),第N层所属的节点的大小为2 N-1+shifbits0
在一些可能的实现方式中,确定第N层所属的节点的过程如下:
首先,根据初始右移位数和预设底数,确定对点云码流进行分层的初始层所属节点的尺寸信息。
这里,以预设底数为底数,以初始右移位数为指数,将得到的结果作为对点云码流进行分层的初始层所属节点的大小;比如,以2为底数,以shiftbits0为初始右移位数,那么对点云码流进行分层的初始层所属节点的大小为2 shifbits0
其次,确定第N层与初始层之间相差的层数差值。
这里,假设初始层为1,那么差值为N-1。
再次,按照层数差值对初始层所属节点的尺寸信息进行调整,得到已调尺寸信息。
这里,在初始右移位数的基础上,与层数差值相加,即可得到第N层右移的位数,采用第N层右移的位数对初始层所属的节点的大小进行调整,从而得到已调尺寸信息。比如,层数差值为N-1,那么第N层右移的位数为shiftbits0+(N-1),根据此,在2 shifbits0的基础上,增加2 N-1倍,从而得到已调尺寸信息2 N-1+shifbits0
最后,根据已调尺寸信息,确定第N层所属的节点。
这里,将该已调尺寸信息,作为第N层所属的节点的大小。比如,将2 N-1+shifbits0作为第N层所属节点的大小。
步骤C2,根据第N层所属的节点和根节点,确定最大容许取值。
这里,通过比较第N层所属的节点的尺寸与根节点的尺寸之间的大小关系,确定层数最大值。
在一些可能的实现方式中,根据第N层所属的节点和根节点,确定最大容许取值,可以通过以下过程实现:
首先,确定根节点的尺寸信息。
这里,根节点的尺寸信息即为包围盒中最长边的长度。
其次,确定已调尺寸信息和根节点的尺寸信息之间的第一差值。
这里,比较已调尺寸信息和根节点的尺寸信息之间的大小,将根节点的尺寸信息与已调尺寸信息相减,得到第一差值。比如,已调尺寸信息为2 N-1+shifbits0,根节点的尺寸信息为2 maxRootNodeDimLog2,那么第一差值为2 maxRootNodeDimLog2-2 N-1+shifbits0
最后,如果第一差值小于等于第一预设阈值,确定第N层对应的层数为最大容许取值。
这里,第一预设阈值为接近0的整数,即在第一差值接近于0的情况下,说明第N层所属的节 点的大小与根节点的大小很接近,进而说明第N层对应的层数已是对点云码流进行分层的最大层数,如此,将所属节点的大小与根节点的大小非常接近的第N层对应的层数,作为最大容许取值,实现了根据点云的属性信息自适应的设定语法元素lifting_num_detail_levels_minus1的范围。
在方式一中,采用输入的点云的属性参数集对点云数据进行处理,从而确定出点云的初始右移位数;在初始右移位数的基础上,确定出初始划分层对应节点的大小;然后,每划分一层,初始右移位数增加,并且划分层对应的节点大小也增加,从而可以确定出第N层右移的位数,以及第N层对应节点的大小,最后,通过对比第N层节点的大小与目标长度之间的大小关系,设定最大容许取值。
方式二:在根据采样距离实现对点云进行LOD分层的方式下,首先,通过结合属性信息中的初始采样距离和相邻两层的采样距离之比,确定出第N层的采样距离;然后,通过对比第N层的采样距离与目标长度之间的大小关系,设定最大容许取值,可以通过以下步骤实现:
步骤A,根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值。
这里,将包围盒中最长对角线的长度,确定为目标长度。根据点云码流的属性信息中的根节点的大小,确定包围盒中相互垂直的三条边的长度,根据这三条边的长度,确定出包围盒中两个距离最远的顶点之间的长度,即最长对角线的长度,从而得到目标长度。在一个具体例子中,根节点的尺寸为2 maxRootNodeDimLog2,那么这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。
步骤B,根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在一些可能的实现方式中,步骤B可以通过以下步骤实现:
步骤B1,确定第一比值。
这里,第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值。比如,第一层与第二层的采样距离之间的比值。在本申请一示例性实施例中,可以设定每相邻两层之间的采样距离之间的比值相同,比如,都为P。在其他实施例中,还可以设定每相邻两层之间的采样距离之间的比值不同。
步骤B2,确定第一比值的对数值。
这里,第一比值的对数值可以理解为是第N层的采样距离,根据包围盒中最长对角线的长度和第一比值,可以确定第N层的采样距离。比如,在初始采样距离的基础上乘以第一比值,即可确定出下一层的采样距离,以此类推,可确定出第N层的采样距离。
在一些可能的实现方式中,通过解析点云码流,确定相邻细节层次的采样距离之间的第一比值,根据点云的几何信息中点云坐标的稀疏情况,设定第一比值。该第一比值可以设定为任意大于1的数,以保证对点云进行分层的过程中,对点云的采集是随着层数的递增,逐层稀疏的。
步骤B3,将所述对数值,确定为所述最大容许取值。
这里,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。在一些实施例中,通过比较第N层的采样距离与包围盒中最长对角线的长度的大小,如果第N层的采样距离与包围盒中最长对角线的长度非常接近,说明第N层即是对点云进行分层的最后一层,即第N层对应的层数为最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可通过包围盒最长的对角线来设定最大容许取值,可以通过以下过程实现:
第一步,确定包围盒中互相垂直的三条边的边长。
这里,在包围盒为立方体的情况下,包围盒中互相垂直的三条边可以理解为是立方体的长宽高。
第二步,根据三条边的边长,确定最长对角线的长度。
这里,如果这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。根据勾股定理,最长对角线的长度为
Figure PCTCN2020119707-appb-000004
通过上述第一步和第二步实现了根据距离对LOD进行划分时,采用包围盒中相互垂直的三条边的边长,确定出最长对角线的长度,即可得到目标长度,以用于设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过相邻两层的采样距离和采样距离比值,来确定第N层的采样距离,可以通过以下过程实现:
第一步,获取至少两个相邻两层的采样距离,得到采样距离集合。
这里,通过分析属性信息包括的初始采样距离和总共采样层数,确定多个相邻层的采样距离。 比如,分别获取第一层与第二层采样距离,第三层与第四层的采样距离,第五层与第六层的采样距离等,组成采样距离集合。也就是说,该采样距离集合中包括多个相邻层的采样距离。
第二步,确定采样距离集合中相邻两层的采样距离之间的比值,以得到预设采样距离比值。
这里,对采样距离集合中相邻两层的采样距离求比值,从而得到相邻两层之间的采样距离之比。在本申请一示例性实施例中,每相邻两层之间的采样距离之比相同,将该相同的比值作为预设采样距离比值。该预设距离比值,可以是这样通过对相邻两层的采样距离求比值得到的,还可以是事先设定的。
第三步,根据预设采样距离比值和属性信息中的初始采样距离,确定第N层的采样距离。
这里,首先,确定第N层与属性信息中初始采样距离对应的层之间的层数差值,然后,将层数差值个预设采样距离比值相乘,最后,将乘积结果与目标长度相乘即可得到第N层的采样距离。比如,第N层与初始采样距离对应的层之间的层数差值为N-1,预设采样距离比值为P,那么第N层的采样距离为P N-1D 1
在本申请一示例性实施例中,通过在属性信息中获取相邻两层的采样距离,来确定采样距离比值,并结合初始采样距离,来确定第N层的采样距离;如此,实现了在根据距离实现LOD划分的情况下,对每一层的采样距离的确定,从而可以设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过判断第N层的采样距离与目标长度之间的关系,来设定最大容许取值,可以通过以下过程实现:
第一步,确定第N层的采样距离和目标长度之间的第二差值。
这里,确定第N层的采样距离与包围盒的最长对角线之间的差值,得到第二差值。比如,第N层的采样距离为P N-1D 1,包围盒的最长对角线为
Figure PCTCN2020119707-appb-000005
第二差值为
Figure PCTCN2020119707-appb-000006
第二步,如果第二差值小于等于第二预设阈值,确定第N层对应的层数为所述最大容许取值。
这里,第二预设阈值为接近0的正数,可以与第一预设阈值相同或不同。如果第二差值小于等于第二预设阈值,说明第N层的采样距离与包围盒的最长对角线的长度非常接近,从而说明第N层为对点云码流进行分层的最后一层,从而可以将第N层对应的层数作为最大容许取值。
在方式二中,首先,响应于接收到的设置指令,在最大容许取值范围内,确定第一语法元素取值。即,接收到用户输入的进行层数设置的指令时,可在该最大容许取值内,选择一个层数作为第一语法元素取值;比如,最大容许取值为[0,20],那么可以选择18作为第一语法元素取值。然后,按照第一语法元素取值,对点云进行划分。如此,在本申请一示例性实施例中,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大可划分层数,从而规定了对点云数据进行分层的最大容许取值,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些示例性实施例中,设定对点云数据进行分层的最大容许取值之后,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,以增加系统的一致性,即在按照所述最大容许取值,对所述点云码流进行划分之后,所述方法还包括以下过程:
第一步,获取输入的对点云进行分层的预设层数。
这里,在编码端或解码端,当用户对点云进行分层时,可以获取用户对点云码流进行分层的预设层数。比如,用户设定的对点云码流进行分层的预设层数为30。
第二步,根据最大容许取值,确定预设层数的合法性。
这里,判断预设层数是否在最大容许取值之内,如果预设层数在最大容许取值之内,确定该预设层数是合法的,即该预设层数是可用的,如果预设层数不在最大容许取值之内,确定该预设层数是不合法的,即该预设层数是不可用的。在一个具体例子中,如果预设层数为30,最大容许取值为21,则说明预设层数是不合法的。
第三步,如果预设层数的合法性表明预设层数小于等于最大容许取值,按照预设层数对点云进行分层。
这里,预设层数小于等于最大容许取值,即预设层数在最大容许取值之内,说明预设层数是可用的,那么可以按照该预设层数对点云进行分层。如此,能够在编码端和解码端可以对用户设置的 LOD划分层数进行检查,从而提高了用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
本申请实施例提供一种点云分层方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过视频编码设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该视频编码设备至少包括处理器和存储介质。参见图2A,图2A为本申请实施例提供的一种点云分层方法的流程示意图。如图2A所示,该方法可以包括:
步骤S201,获取点云的几何信息和属性信息。
这里,点云码流可以理解为是需要进行分层的点云数据,比如,用于形成三维视频的点云数据等。对点云数据进行分层的方式可以是根据莫顿码实现,还可以是根据采样距离实现。在步骤S101中,点云码流的几何信息包括:点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等。属性信息包括:输入点云的划分距离的平方、划分总层数、颜色空间的信息、空间分辨率、点位精度和表面法向量等。
在一些可能的实现方式中,根据莫顿码实现对点云数据进行LOD分层的过程如下:
假设变量(P i) i=1...N保存原始的输入点云,变量(M i) i=1....N为与每个点相关的莫顿值。并且设置D0和ρ分别为两个用户设置的初始参数,用于作为划分LOD距离阈值的参数,其中,ρ>1。其中计算莫顿码的具体方法描述如下所示,对于每一个分量用d比特二进制数表示的三维坐标,其三个分量可以表示上述公式(1)。
莫顿码M是对x,y,z从最高位开始,依次交叉排列x l,y l,z l到最低位,M的计算公式如公式(2)。
在得到点云中每个点的莫顿码M后,将点云中的点按莫顿码由小到大的顺序进行排列。变量I中保存着所有点的索引,该算法进行不断地迭代,在第k迭代时,属于LODk中的点会从LOD0到第LODk-1层中进行查找最近邻居。该算法的具体过程如下:
首先,初始化采样距离D=D 0
然后,在第k次迭代时,k=0,1…N-1(N为LOD划分的总层数)。变量L(k)保存属于第k层LOD中的点,变量O(k)属于比LODk层更高的点集。其中,L(k)和O(k)的计算步骤如下:
第一步,对O(k)和L(k)进行初始化;
其中,L(k)被初始化为空集;O(k)初始化为空集。
第二步,每一次迭代按照变量I中保存点的索引进行遍历。每一次遍历都会计算当前点到集合O(k)中一定范围内所有点的距离。根据当前点所对应的莫顿序值,在集合O(k)的一个搜索范围SR1内进行查找(SR1代表根据莫顿序的搜索范围,一般为8,16,64),如果在该范围内查找到距离当前点距离小于阈值dl,就将当前的点加入到集合L(k)中,否则加入到集合O(k)中。
第三步,在每一次迭代的过程中,集合L(k)和O(K)分别进行计算,并且O(k)中的点会被用来作为集合L(k)中点的预测点,如此,实现对点云数据的LOD分层。假设集合R(k)=L(k)\L(k-1),其中R(k)代表LOD(k-1)与LOD(k)集合相差部分的点集。
在另一实现方式中,根据采样距离实现对点云数据进行LOD分层的过程如下:
LOD的生成过程是通过一组用户设置的不同距离阈值(d l) l=0...L-1将原始输入点云划分为不同的细化级别(R l) l=0...L-1。注意该距离阈值(d l) l=0...L-1需要满足两个条件:即,
Figure PCTCN2020119707-appb-000007
该LOD的划分过程是确定的,是在点云几何重建之后,这时候可以得到点云的几何坐标信息。该划分LOD的过程同时应用在点云的编码和解码端,LOD划分的具体过程如下:
1)首先,将所有的点标记为“未访问过”的点集,并且初始化“访问过”的点集为V为空集。
2)该算法过程是不断地进行迭代。每一次迭代l所对应的细化级别R l生成步骤如下所示:
第一步,该算法迭代遍历所有的点;
第二步,如果当前的点已经遍历过,则忽略该点;
第三步,否则,计算该点到集合V最近的距离D;
第四步,如果该最近距离D大于等于阈值d l,则将该点添加到细化级别R l和V中;
第五步,该过程进行不断地迭代直至所有的点都被遍历过。
3)第l个LOD集合,即LOD l是通过将精细化级别R 0,R 1, ....,R l中的点进行合并得到。
4)该过程进行不断地迭代直到所有的LOD生成或者所有的点都被遍历过,如此实现对点云数 据的LOD分层。
步骤S202,确定第一语法元素的最大容许取值。
这里,第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量。可以通过参考点云码流的档次(Profile)、等级(Tier)或级别(Level),确定点云码流进行分层的最大容许取值。或者将最大容许取值设定为常数,即根据该常数对点云码流进行LOD分层。
在一些可能的实现方式中,确定最大容许取值的过程可以通过以下量种方式实现:
方式一:首先,确定符合性(Conformance)参数。
这里,符合性参数用于表征该点云码流的自身属性,至少包括以下参数之一:档次、等级和级别。在一些可能的实现方式中,可以根据编码器的配置参数,设置该符合性参数。比如,编码器的配置参数中级别为高,则设置符合性参数中的级别为高,同理,可将编码器中配置参数的档次设定为符合性参数中的档次。或,将编码器中配置参数的等级设定为符合性参数中的等级。对于符合性参数的设置,还可以是根据会话协商过程确定的参数来确定。比如,在会话协商过程中,确定了级别为高,那么设定符合性参数中级别为高。
然后,根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
这里,符合性参数与所述最大容许取值之间的对应关系,为预设的对应关系,包括:档次、等级和级别与最大容许取值之间的对应关系。在一个具体例子中,将级别划分为高中低三个等级,设定不同的等级对应不同的最大容许取值,等级越大对应的最大容许取值越高,比如,高等级对应的最大容许取值为31,中等级对应的最大容许取值为21,低等级对应的最大容许取值为16;档次和级别与最大容许取值之间的对应关系也可以如此设定。如此,可根据符合性参数与所述最大容许取值之间的对应关系,确定出最大容许取值。
最后,对所述符合性参数进行编码,将编码比特写入所述码流。
方式二:将最大容许取值设置为预设的常数值,其中,常数值为大于0的整数。
在一些可能的实现方式中,常数值为大于0,且小于或等于预设阈值的整数。在一个具体例子中,预设阈值可以是31,在其他实施例中,可以根据编码器的配置参数,对应设备该常数值,还可以是将编码器本身固化的参数,设置为该参数值。预设阈值还可以取其他数值,比如,6、7、8、16、21、32或64等。
步骤S203,根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值。
这里,第一语法元素取值不大于所述最大容许取值。确定最大容许取值之后,可以在该最大容许取值范围内,通过综合考虑点云的几何信息,对点云进行LOD划分,从而确定第一语法元素取值。
在一些可能的实现方式中,在确定第一语法元素取值之后,首先,获取所述点云码流的莫顿码集合;在一些可能的实现方式中,首先,获取待搜索点云数据;比如,用于形成三维视频的点云数据等。然后,确定所述点云数据的莫顿码;比如,可以通过先确定点云数据的二进制编码数据流,然后根据该二进制编码数据流,确定点云数据的莫顿码。最后,将所述点云数据的莫顿码按照升序进行排列,得到包含多个莫顿码的所述莫顿码集合。在其他实施例中,也可以将点云数据的莫顿码按照降序进行排列,得到包含多个莫顿码的所述莫顿码集合;还可以是将点云数据的莫顿码按照任意特定的顺序(比如,任意设定的,中间最大,往两端依次减小的顺序等)进行排列,以得到莫顿码集合。然后,根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;最后,根据所述第一语法元素取值,对所述点云进行细分层次划分。
步骤S204,根据对所述点云的细分层次划分,对所述点云进行编码,生成码流。
这里,根据对点云的LOD分层情况,对每一层的点云进行编码。
步骤S205,对所述第一语法元素取值进行编码,将编码比特写入码流。
这里,确定第一语法元素取值之后,首先,确定出该取值在码流中占据的比特数N。在一些可能的实现方式中,将第一语法元素在码流中对应的比特数N设置为使用无符号二进制数表示最大容许取值所需的最少比特位数。比如,使用无符号二进制数表示最大容许取值所需的最少比特位数为64,将64设置为第一语法元素在码流中对应的比特数N。然后,将第一语法元素取值转换为N个比特,即将第一语法元素取值转换为使用N个无符号二进制数所对应的比特,并将N个比特写入码流,从而实现了对第一语法元素取值进行编码,将编码比特写入码流。
在本申请一示例性实施例中,通过获取点云的几何信息和属性信息,确定第一语法元素的最大容许取值,然后,根据最大容许取值和点云的几何信息,确定第一语法元素取值;最后,根据对点 云的细分层次划分,对点云进行编码;并对第一语法元素取值进行编码,将编码比特写入码流。如此,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大容许取值,从而规定了对点云数据进行分层的第一语法元素的取值的范围,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些实施例中,在根据莫顿码实现LOD划分的情况下,可根据点云数据的属性信息自适应的确定对点云数据进行分层的最大容许取值,即步骤S202,可以通过以下步骤实现,参见图2B,图2B为本申请一示例性实施例提供的点云分层方法的另一实现流程示意图,进行以下说明:
步骤S221,确定根节点的长度、宽度和高度的取值。
这里,根节点表示点云中最深的节点,可以采用包围盒来表示。
在一些可能的实现方式中,可以通过以下步骤实现:
第一步,根据所述点云的几何信息,确定所述点云的包围盒。
这里,通过对点云数据的点云法向量、曲率、点云密度、点云表面粗糙度、点云重心、点云权重重心、点云协方差和点云互协方差等几何信息进行编码,可以确定点云的坐标信息,然后,根据该坐标信息可以确定包围点云数据的立方体的大小,从而得到包围盒的尺寸。其中,包围盒的尺寸包括:包围盒的长、宽、高以及对角线长度等。
第二步,根据包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
这里,首先,确定所述包围盒尺寸中满足预设条件的目标长度;比如,将所述包围盒的最长边长的尺寸,确定为所述目标长度。预设条件可以理解为是与当前对点云进行分层方式相匹配的最长尺寸。比如,在根据采样距离实现对点云数据进行LOD分层的方式下,预设条件为包围盒中最长对角线,即,包围盒中距离最远的两个顶点之间的连线。在根据莫顿码实现对点云数据进行LOD分层的方式下,预设条件为包围盒最长的边,并且将这条边的长度作为点云码流的根节点的长度。
然后,根据所述目标长度,创建所述点云的根节点。这里,目标长度为包围盒中最长的边长,根据该最长的边构造一个立方体,并且将该立方体作为点云的根节点,即作为该点云中最大的节点。比如,包围盒中最长的边长为2 maxRootNodeDimLog2,根据此,根节点的大小也是2 maxRootNodeDimLog2。通过获得包围盒大小,根据其中最长的边构造一个立方体,作为点云的根节点,从而确定出能够对该点云进行分层的最大的节点。
步骤S222,根据所述点云的几何信息,确定右移第一参数的取值。
这里,根据点云的几何信息,确定点云进行分层的右移第一参数的取值,比如,用户输入的初始采样距离。在一些可能的实现方式中,在几何信息中,确定点云的初始采样距离,将该初始采样距离设置为右移第一参数的取值。初始采样距离可以是用户设定的,也可以是根据点云的属性信息设定的。
步骤S223,根据右移第一参数的取值和根节点的长度、宽度和高度的取值,确定所述最大容许取值。
这里,无论是根据采样距离实现对点云数据进行LOD分层,还是根据莫顿码实现对点云数据进行LOD分层,综合考虑点云的属性信息确定对点云数据进行分层的第N层,通过判断第N层和目标长度之间的关系,来设定最大容许取值。
在一些可能的实现方式中,确定对点云进行划分的最大容许取值,包括以下两种实现方式:
方式一:在根据莫顿码实现对点云数据进行LOD分层的方式下,可以通过以下步骤实现:
第一步,将根节点维度最大值设置为根节点的长度、宽度和高度三个取值中的最大值。
这里,通过属性信息中包括的:点云初始划分距离,划分总层数和颜色空间的变换等参数,对点云进行处理,以最终确定出第N层的节点的大小,如果第N层的节点的大小与根节点的大小之间的差值较小,或二者相等,那么将第N层所在的层数,确定为最大容许取值。
在该步骤中,在根据莫顿码实现LOD划分的场景下,通过对比第N层的节点的大小与根节点的大小之间的大小关系,自适应的确定出最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围。
第二步,根据所述点云的几何信息,确定右移第二参数的取值。
这里,右移第二参数的取值,可以理解为是对右移第一参数的取值的微调量,通过对输入点云进行细分为多个模块之后,确定每一分块的初始采样距离,并求和,将初始采样距离和值与右移第一参数相减,即可得到右移第二参数的取值。在一些可能的实现方式中,通过对点云数据进行编码时,首先,将点云数据划分为多个小模块,然后,在几何信息中,确定点云中每一分块的初始采样 距离,并对多个模块的初始采样距离求和,将初始采样距离和值与右移第一参数的差值,确定为右移第二参数,即右移第二参数可以理解为是对右移第一参数进行微调的调整量。
第三步,将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
这里,对右移第一参数和右移第二参数进行求和,比如,根据输入的初始划分距离和划分总层数,对点云进行计算,以确定出该初始采样距离和值。在本申请一示例性实施例中,根据右移第一参数aps.dist2和输入点云进行计算得到右移第二参数abh.attr_dist2_delta,然后,根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0。
在一些可能的实现方式中,可以通过以下过程确定最大容许值:
步骤A,确定属性信息的头文件函数。
这里,根据属性信息中包括的输入参数(比如,云初始划分距离,划分总层数和颜色空间的变换等),对点云数据进行处理,得到该头文件函数(比如,得到abh.attr_dist2_delta)。该头文件函数用于表征点云数据的属性参数。
步骤B,将头文件函数的数值和属性信息对应的参数值相加,得到初始采样距离和值。
这里,将abh.attr_dist2_delta的数值(对应于右移第二参数的取值)与属性信息对应的参数值进行相加,将相加得到的结果作为初始右移位数。如此,通过根据输入的属性信息对点云数据进行处理,从而确定出对点云进行划分时的初始右移位数。
步骤C,将根节点维度最大值与该初始采样距离和值相减,得到最大容许值。
这里,步骤C可以通过以下过程实现:
步骤C1,根据初始采样距离和值,确定对点云进行划分的第N层所属的节点。
其中,N为大于等于2的整数;在得到初始右移位数的基础上,每划分一层,初始右移位数增加1,对应的叶子节点的大小增加2倍。比如,初始右移位数为shiftbits0,对应的节点大小为2 shifbits0,每划分一层,shiftbits0+1,对应的叶子节点增加为前一层节点的2倍;所以,当划分到第N层时,右移位数shiftbits=shiftbits0+(N-1),第N层所属的节点的大小为2 N-1+shifbits0
在一些可能的实现方式中,确定第N层所属的节点的过程如下:
首先,根据初始右移位数和预设底数,确定对点云码流进行分层的初始层所属节点的尺寸信息。
这里,以预设底数为底数,以初始右移位数为指数,将得到的结果作为对点云码流进行分层的初始层所属节点的大小;比如,以2为底数,以shiftbits0为初始右移位数,那么对点云码流进行分层的初始层所属节点的大小为2 shifbits0
其次,确定第N层与初始层之间相差的层数差值。
这里,假设初始层为1,那么差值为N-1。
再次,按照层数差值对初始层所属节点的尺寸信息进行调整,得到已调尺寸信息。
这里,在初始右移位数的基础上,与层数差值相加,即可得到第N层右移的位数,采用第N层右移的位数对初始层所属的节点的大小进行调整,从而得到已调尺寸信息。比如,层数差值为N-1,那么第N层右移的位数为shiftbits0+(N-1),根据此,在2 shifbits0的基础上,增加2 N-1倍,从而得到已调尺寸信息2 N-1+shifbits0
最后,根据已调尺寸信息,确定第N层所属的节点。
这里,将该已调尺寸信息,作为第N层所属的节点的大小。比如,将2 N-1+shifbits0作为第N层所属节点的大小。
步骤C2,根据第N层所属的节点和根节点,确定最大容许取值。
这里,通过比较第N层所属的节点的尺寸与根节点的尺寸之间的大小关系,确定层数最大值。
在一些可能的实现方式中,根据第N层所属的节点和根节点,确定最大容许取值,可以通过以下过程实现:
首先,确定根节点的尺寸信息。
这里,根节点的尺寸信息即为包围盒中最长边的长度。
其次,确定已调尺寸信息和根节点的尺寸信息之间的第一差值。
这里,比较已调尺寸信息和根节点的尺寸信息之间的大小,将根节点的尺寸信息与已调尺寸信息相减,得到第一差值。比如,已调尺寸信息为2 N-1+shifbits0,根节点的尺寸信息为2 maxRootNodeDimLog2, 那么第一差值为2 maxRootNodeDimLog2-2 N-1+shifbits0
最后,如果第一差值小于等于第一预设阈值,确定第N层对应的层数为最大容许取值。
这里,第一预设阈值为接近0的整数,即在第一差值接近于0的情况下,说明第N层所属的节点的大小与根节点的大小很接近,进而说明第N层对应的层数已是对点云码流进行分层的最大层数,如此,将所属节点的大小与根节点的大小非常接近的第N层对应的层数,作为最大容许取值,实现了根据点云的属性信息自适应的设定语法元素lifting_num_detail_levels_minus1的范围。
在方式一中,采用输入的点云的属性参数集对点云数据进行处理,从而确定出点云的初始右移位数;在初始右移位数的基础上,确定出初始划分层对应节点的大小;然后,每划分一层,初始右移位数增加,并且划分层对应的节点大小也增加,从而可以确定出第N层右移的位数,以及第N层对应节点的大小,最后,通过对比第N层节点的大小与目标长度之间的大小关系,设定最大容许取值。
方式二:在根据采样距离实现对点云数据进行LOD分层的方式下,首先,通过结合属性信息中的初始采样距离和相邻两层的采样距离之比,确定出第N层的采样距离;然后,通过对比第N层的采样距离与目标长度之间的大小关系,设定最大容许取值,可以通过以下步骤实现:
步骤A,根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值。
这里,将包围盒中最长对角线的长度,确定为目标长度。根据点云码流的属性信息中的根节点的大小,确定包围盒中相互垂直的三条边的长度,根据这三条边的长度,确定出包围盒中两个距离最远的顶点之间的长度,即最长对角线的长度,从而得到目标长度。在一个具体例子中,根节点的尺寸为2 maxRootNodeDimLog2,那么这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。
步骤B,根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在一些可能的实现方式中,步骤B可以通过以下步骤实现:
步骤B1,确定第一比值。
这里,第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值。比如,第一层与第二层的采样距离之间的比值。在本申请一示例性实施例中,可以设定每相邻两层之间的采样距离之间的比值相同,比如,都为P。在其他实施例中,还可以设定每相邻两层之间的采样距离之间的比值不同。
步骤B2,确定第一比值的对数值。
这里,第一比值的对数值可以理解为是第N层的采样距离,根据包围盒中最长对角线的长度和第一比值,可以确定第N层的采样距离。比如,在初始采样距离的基础上乘以第一比值,即可确定出下一层的采样距离,以此类推,可确定出第N层的采样距离。
在一些可能的实现方式中,根据点云的几何信息,确定相邻细节层次的采样距离之间的第一比值,根据点云的几何信息中点云坐标的稀疏情况,设定第一比值。该第一比值可以设定为任意大于1的数,以保证对点云进行分层的过程中,对点云的采集是随着层数的递增,逐层稀疏的。
步骤B3,将所述对数值,确定为所述最大容许取值。
这里,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。在一些实施例中,通过比较第N层的采样距离与包围盒中最长对角线的长度的大小,如果第N层的采样距离与与包围盒中最长对角线的长度非常接近,说明第N层即是对点云进行分层的最后一层,即第N层对应的层数为最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可通过包围盒最长的对角线来设定最大容许取值,可以通过以下过程实现:
第一步,确定包围盒中互相垂直的三条边的边长。
这里,在包围盒为立方体的情况下,包围盒中互相垂直的三条边可以理解为是立方体的长宽高。
第二步,根据三条边的边长,确定最长对角线的长度。
这里,如果这三条边的边长分别为2 gbh.rootNodeSizeLog2[k](k=0,1,2)。根据勾股定理,最长对角线的长度为
Figure PCTCN2020119707-appb-000008
通过上述第一步和第二步实现了根据距离对LOD进行划分时,采用包围盒中相互垂直的三条边的边长,确定出最长对角线的长度,即可得到目标长度,以用于设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过相邻两层的采样距离和 采样距离比值,来确定第N层的采样距离,可以通过以下过程实现:
第一步,获取至少两个相邻两层的采样距离,得到采样距离集合。
这里,通过分析属性信息包括的初始采样距离和总共采样层数,确定多个相邻层的采样距离。比如,分别获取第一层与第二层采样距离,第三层与第四层的采样距离,第五层与第六层的采样距离等,组成采样距离集合。也就是说,该采样距离集合中包括多个相邻层的采样距离。
第二步,确定采样距离集合中相邻两层的采样距离之间的比值,以得到预设采样距离比值。
这里,对采样距离集合中相邻两层的采样距离求比值,从而得到相邻两层之间的采样距离之比。在本申请一示例性实施例中,每相邻两层之间的采样距离之比相同,将该相同的比值作为预设采样距离比值。该预设距离比值,可以是这样通过对相邻两层的采样距离求比值得到的,还可以是事先设定的。
第三步,根据预设采样距离比值和属性信息中的初始采样距离,确定第N层的采样距离。
这里,首先,确定第N层与属性信息中初始采样距离对应的层之间的层数差值,然后,将层数差值个预设采样距离比值相乘,最后,将乘积结果与目标长度相乘即可得到第N层的采样距离。比如,第N层与初始采样距离对应的层之间的层数差值为N-1,预设采样距离比值为P,那么第N层的采样距离为P N-1D 1
在本申请一示例性实施例中,通过在属性信息中获取相邻两层的采样距离,来确定采样距离比值,并结合初始采样距离,来确定第N层的采样距离;如此,实现了在根据距离实现LOD划分的情况下,对每一层的采样距离的确定,从而可以设定最大容许取值。
在一些示例性实施例中,在根据距离实现LOD划分的情况下,可以通过判断第N层的采样距离与目标长度之间的关系,来设定最大容许取值,可以通过以下过程实现:
第一步,确定第N层的采样距离和目标长度之间的第二差值。
这里,确定第N层的采样距离与包围盒的最长对角线之间的差值,得到第二差值。比如,第N层的采样距离为P N-1D 1,包围盒的最长对角线为
Figure PCTCN2020119707-appb-000009
第二差值为
Figure PCTCN2020119707-appb-000010
第二步,如果第二差值小于等于第二预设阈值,确定第N层对应的层数为所述最大容许取值。
这里,第二预设阈值为接近0的正数,可以与第一预设阈值相同或不同。如果第二差值小于等于第二预设阈值,说明第N层的采样距离与包围盒的最长对角线的长度非常接近,从而说明第N层为对点云码流进行分层的最后一层,从而可以将第N层对应的层数作为最大容许取值。
在方式二中,首先,响应于接收到的设置指令,在最大容许取值范围内,确定第一语法元素取值。即,接收到用户输入的进行层数设置的指令时,可在该最大容许取值内,选择一个层数作为第一语法元素取值;比如,最大容许取值为[0,20],那么可以选择18作为第一语法元素取值。然后,按照第一语法元素取值,对点云进行划分。如此,在本申请一示例性实施例中,根据点云数据的几何信息和属性信息,自适应的确定该点云数据最大可划分层数,从而规定了对点云数据进行分层的最大容许取值,进而能够在编码端和解码端对用户设置的LOD划分层数进行检查,能够增加用户设置的划分层数与实际划分层数的一致性。
在一些示例性实施例中,设定对点云数据进行分层的最大容许取值之后,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,以增加系统的一致性,即在按照所述最大容许取值,对所述点云码流进行划分之后,所述方法还包括以下过程:
第一步,获取输入的对点云进行分层的预设层数。
这里,在编码端或解码端,当用户对点云进行分层时,可以获取用户对点云码流进行分层的预设层数。比如,用户设定的对点云码流进行分层的预设层数为30。
第二步,根据最大容许取值,确定预设层数的合法性。
这里,判断预设层数是否在最大容许取值之内,如果预设层数在最大容许取值之内,确定该预设层数是合法的,即该预设层数是可用的,如果预设层数不在最大容许取值之内,确定该预设层数是不合法的,即该预设层数是不可用的。在一个具体例子中,如果预设层数为30,最大容许取值为21,则说明预设层数是不合法的。
第三步,如果预设层数的合法性表明预设层数小于等于最大容许取值,按照预设层数对点云进行分层。
这里,预设层数小于等于最大容许取值,即预设层数在最大容许取值之内,说明预设层数是可用的,那么可以按照该预设层数对点云进行分层。如此,能够在编码端和解码端可以对用户设置的LOD划分层数进行检查,从而提高了用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
在一些实施例中,点云的压缩编码流程如图3所示,图3为本申请一示例性实施例点云压缩编码流程示意图,结合图3所示的步骤进行以下说明:
步骤S301,将点云划分为几何信息和每点对应的属性信息。
这里,在点云根据几何的点云压缩编码的(Geometry-based Point Cloud Compression,G-PCC)编码器框架中,点云的几何信息和每点所对应的属性信息是分开进行编码的。
步骤S302,对几何信息进行坐标转换。
这里,对几何信息进行坐标转换,使点云全都包含在一个包围盒(bounding box)中。
步骤S303,对坐标转换后的几何信息进行体素化。
这里,对坐标转换后的几何信息进行体素化,可以理解为对坐标转换后的几何信息进行量化,这一步量化主要起到缩放的作用,由于量化取整,使得一部分点的几何信息相同,根据参数来决定是否移除重复点,量化和移除重复点。
步骤S304,对包围盒进行八叉树划分。
这里,对bounding box进行八叉树划分。在根据八叉树的几何信息编码框架中,将包围盒八等分为8个子立方体,对非空的(包含点云中的点)的子立方体继续进行八等分,直到划分得到的叶子结点为1x1x1的单位立方体时停止划分,对叶子结点中的点进行编码,生成二进制码流。
步骤S305,对叶子节点进行算术编码,得到多个交点。
这里,对叶子节点进行表面拟合,用于对得到的几何信息的二进制码流进行几何重建。在根据三角面片集(triangle soup,trisoup)的几何信息编码框架中,同样也要先进行八叉树划分,但区别于根据八叉树的几何信息编码,该方法不需要将点云逐级划分到边长为1×1×1的单位立方体,而是划分到子块(block)边长为W时停止划分,根据每个子块中点云的分布所形成的表面,得到该表面与子块的十二条边所产生的至多十二个交点(vertex)。依次编码每个子块的交点坐标,生成二进制码流。
步骤S306,对每个子块的交点坐标进行编码,生成二进制码流。
这里,对每个子块的交点坐标进行编码,生成几何比特流。
上述步骤S301至步骤S306完成了对几何信息的编码过程,几何编码完成后,对几何信息进行重建,即进入步骤S307。
步骤S307,对几何信息进行重建。
这里,对几何信息进行重建,可以理解为对已经编码的比特流进行解码,重新得到解码后的几何信息,即重建的几何信息。
在本申请一示例性实施例中,属性编码主要针对颜色信息进行。
步骤S308,将属性信息中的颜色信息从RGB颜色空间转换到YUV颜色空间。
步骤S309,利用重建的几何信息对点云重新着色,使得未编码的属性信息与重建的几何信息对应起来。
这里,在颜色信息编码中,主要有两种变换方法,一是在生成细节层次划分模块(LOD)310中,实现依赖于LOD划分的根据距离的提升变换,二是直接进行区域自适应分层变换(Region Adaptive Hierarchal Transform,RAHT)311变换,这两种方法都会将颜色信息从空间域转换到频域,通过变换得到高频系数和低频系数。最后对系数进行量化并编码,生成二进制码流。
步骤S312,对颜色信息从空间域转换到频域,得到高频系数和低频系数进行量化。
步骤S313,对量化的结果进行算术编码。
步骤S314,根据算术编码的结果,生成属性比特流。
上述步骤S308至步骤S314实现了属性信息进行编码的过程,属性信息的编码分为三种模式:预测模式、提升模式和RAHT模式。对于预测模式和提升模式,需要对点云进行LOD划分。LOD就是根据某种方式将点云划分为一系列的增强层和细节层,如图4所示,图4为本申请一示例性实施例进行LOD划分的实现流程示意图,结合图4进行以下说明:
对于点集合401(LOD1),将其划分为表示点云细节信息的集合A1,与表示点云的骨架信息的点集合402(LOD2);然后,针对点集合402,将其划分为表示点云细节信息的集合A2,与表示点云的骨架信息的点集合403(LOD3)。
在相关技术中,对于LOD的划分层数没有规定,由用户手动设置,但是同时也没有规定LOD划分层数的范围。在G-PCC的通用测试条件中往往将LOD的划分层数设置为一个较大的数,造成设置值与实际的划分层数经常不符。
根据此,本申请一示例性实施例提供一种点云分层方法,对于语法元素lifting_num_detail_levels_minus1参数的最大范围进行限定,定义lifting_num_detail_levels_minus1最大值MAX_minus1,其区间为0到MAX_minus1。
图5为本申请一示例性实施例提供的根据莫顿码进行LOD划分的结构示意图,结合图5进行以下说明:
图5中框501表示点云的包围盒,虚线502为以包围盒最长边为边长的立方体。
在一些实施例中,在点云的压缩过程中,根据几何信息的编码可以得到点云的包围盒大小,根据最长的边构造一个立方体,即为点云的根节点。
在一些可能的实现方式中,根据莫顿码右移的LOD生成过程中,首先根据aps.dist2和输入点云进行计算得到abh.attr_dist2_delta,然后根据aps.dist2和abh.attr_dist2_delta计算得到初始右移位数shiftbits0,如公式(3)所示:
shiftbits0=aps.dist2+abh.attr_dist2_delta(3);
其中,第一次右移位数shiftbits为shiftbits0,对应的节点大小为2 shifbits0,表示为图5中的A。接着进行LOD划分时,每划分一层,shiftbits加1;而每右移1位,节点的边长增加为前一层节点的2倍,表示为图5中的2A。
当划分到第N层时,shiftbits=shiftbits0+(N-1),此时节点大小为2 N-1+shifbits0。在本申请一示例性实施例中,LOD划分终止的条件为:当划分到根节点时,结束LOD划分,此时根节点大小为2 maxRootNodeDimLog2,可以得到公式(4):
2 N-1+shifbits0≤2 maxRootNodeDimLog2      (4);
从而可得公式(5):
N≤maxRootNodeDimLog2-shiftbits0+1   (5);
那么LOD最大的划分层数为max(N)如公式(6)所示:
max(N)=maxRootNodeDimLog2-shiftbits0+1   (6);
对于lifting_num_detail_levels_minus1,最大值应为max(N)-1,如公式(7)所示:
Figure PCTCN2020119707-appb-000011
根据公式(7)可以得出,lifting_num_detail_levels_minus1的范围可以表示为[0,MAX_minus1]。
在本申请一示例性实施例中,根据点云内容自适应的计算出其最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围,在编码端和解码端可以对用户设置的levelOfDetailCount参数(LOD划分层数)进行检查,增加了系统的一致性。
在一些实施例中,在根据距离的LOD划分的场景下,设定LOD划分的最大层数的过程如图6所示,图6为本申请一示例性实施例根据距离进行LOD划分的结构示意图,结合图6进行以下说明:
对于根据距离的LOD划分方式,找到点云最远的两个点的距离,可以根据包围盒601来近似计算点云中最远的两个点(点602和点603)的距离,将点602和点603之间的距离作为包围盒的对角线长度,包围盒三条边x、y和z分别为2 gbh.rootNodeSizeLog2[k](其中,k=0,1或2),那么理论上最远两个点的距离设为maxDist如公式(8)所示:
Figure PCTCN2020119707-appb-000012
在公式(8)中,设初始采样距离为D1,设置相邻两层的采样距离比为P,那么第N层的采样距离可以表示为D N=P N-1D 1
对于划分层数N,由于D N≤maxDist,那么
Figure PCTCN2020119707-appb-000013
那么对于语法元素lifting_num_detail_levels_minus1,最大值MAX_minus1应为max(N)-1,可以 表示为公式(9):
Figure PCTCN2020119707-appb-000014
其中,
Figure PCTCN2020119707-appb-000015
根据此,MAX_minus1可以表示为公式(10):
Figure PCTCN2020119707-appb-000016
在本申请一示例性实施例中,根据点云内容自适应的计算出其最大LOD可划分层数,明确规定了语法元素lifting_num_detail_levels_minus1的范围;从而能够在编码端对用户设置的LOD划分层数进行检查,提高用户设置的期望LOD划分层数与实际LOD划分层数的一致性。
如图7A所示,本申请实施例提供一种解码器1,包括:
第一接收模块701,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
第一确定模块702,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
第一解析模块703,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
第二确定模块704,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
第一解码模块705,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,获得符合性参数;根据所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
在本申请的一些实施例中,还包括:所述常数值为大于0,且小于或等于预设阈值的整数。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,确定根节点的长度、宽度和高度的取值;解析所述点云码流,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一解析模块703,还用于:解析所述点云码流,确定用于表征所述点云码流的初始采样距离;将所述初始采样距离,确定为所述定右移第一参数的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:
解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:
解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述根节点维度最大值设置为所述根节点的长度、宽度和高度三个取值中的最大值;解析所述点云码流,确定右移第二参数的取值;将所述最大容许值设置为所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云码流,确定所述点云码流中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
在本申请的一些实施例中,所述第一确定模块702,还用于:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:确定第一比值,其中,所述第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;确定所述第一比值的对数值;将所述对数值确定为所述最大容许取值;其中,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。
在本申请的一些实施例中,所述第一确定模块702,还用于:解析所述点云,确定所述相邻细节层次的采样距离之间的所述第一比值。
在本申请的一些实施例中,所述第一确定模块702,还用于:根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N;从所述点云码流中读取N个比特,并将所述N个比特转换为所述第一语法元素的取值。
在本申请的一些实施例中,所述第一确定模块702,还用于:确定使用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
在本申请的一些实施例中,所述第一确定模块702,还用于:将所述第一语法元素取值设置为所述N个比特的无符号二进制数所对应的数值。
在本申请的一些实施例中,所述第一确定模块702,还用于:比较所述第一语法元素取值与所述最大容许取值之间的大小;当所述第一语法元素取值大于所述最大容许取值时,生成异常错误报告信息。
在本申请的一些实施例中,第一解码模块705,还用于:根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值;根据所述一个或多个细节层次的重建值,获得所述点云的重建点云。
在本申请的一些实施例中,第一解码模块705,还用于:
根据所述细节层次的数量和所述几何信息,对所述点云码流进行细节层次划分,获得所述一个或多个细节层次的重建值。
在实际应用中,如图7B所示,本申请实施例还提供了一种解码器,包括:第一存储器721和第一处理器722;所述第一存储器721存储有可在第一处理器722上运行的计算机程序,所述第一处理器722执行所述程序时解码器侧的点云分层方法。
如图8A所示,本申请实施例提供一种编码器2,包括:
第一获取模块801,用于获取点云的几何信息和属性信息;
第一确定模块802,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
第一划分模块803,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
第一编码模块804,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
第二编码模块805,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定所述点云的符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;根据所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;对所述符合性参数进行编码,将编码比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据编码器的配置参数,设置所述符合性参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据会话协商过程中确定的参数,设置所述符合性参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述编码器的配置参数,设置所述预设的常数值;所述常数值为大于0,且小于或等于预设阈值的整数。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定根节点的长度、宽度和高度的取值;根据所述点云的几何信息,确定右移第一参数的取值;根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:在所述几何信息中,确定用于表征所述点云的初始采样距离;将所述初始采样距离,确定为所述定右移第一参数的取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述点云的几何信息,确定所述点云的包围盒;根据所述包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定所述包围盒尺寸中满足预设条件的目标长度;根据所述目标长度,创建所述点云的根节点。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述包围盒的最长边长的尺寸,确定为所述目标长度。
在本申请的一些实施例中,所述第一确定模块802,还用于:对所述根节点的长度、宽度和高度的取值进行编码,将编码比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述编码比特写入所述码流中的几何数据单元头信息中。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述根节点的长度、宽度和高度三个取值中的最大值设置为所述根节点维度最大值;根据所述点云的几何信息,确定右移第二参数的取值;将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
在本申请的一些实施例中,所述第一确定模块802,还用于:在所述几何信息中,确定所述点云中每一分块的初始采样距离;计算所述每一分块的初始采样距离的和,得到初始采样距离和值;将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定第一比值,其中,所述第一比值等于所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;计算所述第一比值的对数值,将将所述最大容许取值设置为所述对数值;其中,所述计算对数值运算中,底数设置为相邻细节层次的采样距离的比值。
在本申请的一些实施例中,所述第一编码模块804,还用于:根据所述点云的几何信息,确定所述相邻细节层次的采样距离之间的所述第一比值。
在本申请的一些实施例中,所述第一确定模块802,还用于:根据所述最大容许取值,确定所述第一语法元素在码流中占据的比特数N;将所述第一语法元素取值转换为N个比特,并将所述N个比特写入所述码流。
在本申请的一些实施例中,所述第一确定模块802,还用于:确定采用无符号二进制数表示所述最大容许取值所需的最少比特位数;将所述最少比特位数,确定为所述比特数N。
在本申请的一些实施例中,所述第一确定模块802,还用于:将所述第一语法元素取值转换为使用所述N个无符号二进制数所对应的比特。
在本申请的一些实施例中,所述第一语法元素取值不大于所述最大容许取值。
在本申请的一些实施例中,第一划分模块803,还用于获取所述点云的莫顿码集合;根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;根据所述第一语法元素取值,对所述点云进行细分层次划分。
在实际应用中,如图8B所示,本申请实施例还提供了一种编码器,包括:
第二存储器821和第二处理器822;
所述第二存储器821存储有可在第二处理器822上运行的计算机程序,所述第二处理器822执行所述程序时实现解码器侧的点云分层方法。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
相应的,本申请实施例提供了一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现编码器的点云分层方法;或者,该计算机程序被第二处理器执行时,实现解码器的点云分层方法。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请一示例性实施例中的点云分层方法,包括:接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;确定所述点云码流中包含的第一语法元素的最大容许取值;解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。

Claims (48)

  1. 一种点云分层方法,应用于解码器,所述方法包括:
    接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
    确定所述点云码流中包含的第一语法元素的最大容许取值;
    解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
    根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
    根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
  2. 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:
    解析所述点云码流,获得符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;
    根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值。
  3. 根据权利要求1所述的方法,所述确定所述点云码流中包含的第一语法元素的最大容许取值,包括:
    将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
  4. 根据权利要求3所述的方法,还包括:
    所述常数值为大于0,且小于或等于预设阈值的整数。
  5. 根据权利要求1所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:
    解析所述点云码流,确定根节点的长度、宽度和高度的取值;
    解析所述点云码流,确定右移第一参数的取值;
    根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
  6. 根据权利要求5所述的方法,所述解析所述点云码流,确定右移第一参数的取值,包括:
    解析所述点云码流,确定用于表征所述点云码流的初始采样距离;
    将所述初始采样距离,确定为所述右移第一参数的取值。
  7. 根据权利要求5所述的方法,所述解析所述点云码流,确定根节点的长度、宽度和高度的取值,包括:
    解析所述点云码流中包含的几何信息,确定所述根节点的长度、宽度和高度的取值。
  8. 根据权利要求7所述的方法,所述解析所述点云码流的几何信息,确定根节点的长度、宽度和高度的取值,包括:
    解析所述几何信息中的单元头信息,确定所述根节点的长度、宽度和高度的取值。
  9. 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    将所述根节点维度最大值设置为所述根节点的长度、宽度和高度三个取值中的最大值;
    解析所述点云码流,确定右移第二参数的取值;
    将所述最大容许值设置为所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值。
  10. 根据权利要求9所述的方法,所述解析所述点云码流,确定右移第二参数的取值,包括:
    解析所述点云码流,确定所述点云码流中每一分块的初始采样距离;
    计算所述每一分块的初始采样距离的和,得到初始采样距离和值;
    将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
  11. 根据权利要求5所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;
    根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
  12. 根据权利要求11所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值, 确定所述最大容许取值,包括:
    确定第一比值,其中,所述第一比值为所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;
    确定所述第一比值的对数值;
    将所述对数值确定为所述最大容许取值;
    其中,所述对数值对应的底数设置为相邻细节层次的采样距离之间的比值。
  13. 根据权利要求12所述的方法,所述确定第一比值,包括:
    解析所述点云,确定所述相邻细节层次的采样距离之间的所述第一比值。
  14. 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:
    根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N;
    从所述点云码流中读取N个比特,将所述N个比特转换为所述第一语法元素的取值。
  15. 根据权利要求14所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:
    确定使用无符号二进制数表示所述最大容许取值所需的最少比特位数;
    将所述最少比特位数,确定为所述比特数N。
  16. 根据权利要求14所述的方法,所述从所述点云码流中读取N个比特,并将所述N个比特转换为所述第一语法元素取值,包括:
    将所述第一语法元素取值设置为所述N个比特的无符号二进制数所对应的数值。
  17. 根据权利要求1所述的方法,所述解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值,包括:
    比较所述第一语法元素取值与所述最大容许取值之间的大小;
    当所述第一语法元素取值大于所述最大容许取值时,生成异常错误报告信息。
  18. 根据权利要求1所述的方法,所述根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云,包括:
    根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值;
    根据所述一个或多个细节层次的重建值,获得所述点云的重建点云。
  19. 根据权利要求18所述的方法,所述根据所述细节层次的数量和所述几何信息,确定所述点云码流中一个或多个细节层次的重建值,包括:
    根据所述细节层次的数量和所述几何信息,对所述点云码流进行细节层次划分,获得所述一个或多个细节层次的重建值。
  20. 一种点云分层方法,用于编码器,所述方法包括:
    获取点云的几何信息和属性信息;
    确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
    根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
    根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
    对所述第一语法元素取值进行编码,将编码比特写入码流。
  21. 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:
    确定所述点云的符合性参数;其中,所述符合性参数至少包括以下参数之一:档次、等级和级别;
    根据预设的所述符合性参数与所述最大容许取值之间的对应关系,确定所述最大容许取值;
    对所述符合性参数进行编码,将编码比特写入所述码流。
  22. 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:
    根据编码器的配置参数,设置所述符合性参数。
  23. 根据权利要求21所述的方法,所述确定所述点云的符合性参数,包括:
    根据会话协商过程中确定的参数,设置所述符合性参数。
  24. 根据权利要求20所述的方法,所述确定所述码流中包含的第一语法元素的最大容许取值,包括:
    将所述最大容许取值设置为预设的常数值,其中,所述常数值为大于0的整数。
  25. 根据权利要求24所述的方法,所述将所述最大容许取值设置为预设的常数值,还包括:
    根据所述编码器的配置参数,设置所述预设的常数值。
  26. 根据权利要求24所述的方法,还包括:
    所述常数值为大于0,且小于或等于预设阈值的整数。
  27. 根据权利要求20所述的方法,所述确定第一语法元素的最大容许取值,包括:
    确定根节点的长度、宽度和高度的取值;
    根据所述点云的几何信息,确定右移第一参数的取值;
    根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值。
  28. 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第一参数的取值,包括:
    在所述几何信息中,确定用于表征所述点云的初始采样距离;
    将所述初始采样距离,确定为所述定右移第一参数的取值。
  29. 根据权利要求27所述的方法,所述确定根节点的长度、宽度和高度的取值,包括:
    根据所述点云的几何信息,确定所述点云的包围盒;
    根据所述包围盒,确定所述点云的根节点,以得到所述点云的根节点的长度、宽度和高度的取值。
  30. 根据权利要求29所述的方法,所述根据所述包围盒,确定所述点云的根节点,包括:
    确定所述包围盒尺寸中满足预设条件的目标长度;
    根据所述目标长度,创建所述点云的根节点。
  31. 根据权利要求30所述的方法,所述确定所述包围盒尺寸中满足预设条件的目标长度,包括:
    将所述包围盒的最长边长的尺寸,确定为所述目标长度。
  32. 根据权利要求27所述的方法,还包括:
    对所述根节点的长度、宽度和高度的取值进行编码,将编码比特写入所述码流。
  33. 根据权利要求32所述的方法,还包括:
    将所述编码比特写入所述码流中的几何数据单元头信息中。
  34. 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    将所述根节点的长度、宽度和高度三个取值中的最大值设置为所述根节点维度最大值;
    根据所述点云的几何信息,确定右移第二参数的取值;
    将所述根节点维度最大值与所述右移第一参数和所述右移第二参数的差值设置为所述最大容许值。
  35. 根据权利要求27所述的方法,所述根据所述点云的几何信息,确定右移第二参数的取值,包括:
    在所述几何信息中,确定所述点云中每一分块的初始采样距离;
    计算所述每一分块的初始采样距离的和,得到初始采样距离和值;
    将所述初始采样距离和值与所述右移第一参数的差值,确定为所述右移第二参数。
  36. 根据权利要求27所述的方法,所述根据所述右移第一参数的取值和所述根节点的长度、宽度和高度的取值,确定所述最大容许取值,包括:
    根据所述根节点的长度、宽度和高度的取值,确定所述根节点对角线距离取值;
    根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值。
  37. 根据权利要求36所述的方法,所述根据所述根节点对角线距离取值和所述右移第一参数值,确定所述最大容许取值,包括:
    确定第一比值,其中,所述第一比值等于所述根节点对角线距离取值与所述右移第一参数值的算术平方根之间的比值;
    计算所述第一比值的对数值,将所述最大容许取值设置为所述对数值;
    其中,所述计算对数值运算中,底数设置为相邻细节层次的采样距离的比值。
  38. 根据权利要求37所述的方法,还包括:
    根据所述点云的几何信息,确定所述相邻细节层次的采样距离之间的所述第一比值。
  39. 根据权利要求20所述的方法,所述对所述第一语法元素取值进行编码,将编码比特写入码流,包括:
    根据所述最大容许取值,确定所述第一语法元素在码流中占据的比特数N;
    将所述第一语法元素取值转换为N个比特,并将所述N个比特写入所述码流。
  40. 根据权利要求39所述的方法,所述根据所述最大容许取值,确定所述第一语法元素在码流中对应的比特数N,包括:
    确定采用无符号二进制数表示所述最大容许取值所需的最少比特位数;
    将所述最少比特位数,确定为所述比特数N。
  41. 根据权利要求40所述的方法,所述将所述第一语法元素取值转换为N个比特,包括:
    将所述第一语法元素取值转换为使用所述N个无符号二进制数所对应的比特。
  42. 根据权利要求20所述的方法,所述第一语法元素取值不大于所述最大容许取值。
  43. 根据权利要求20或42所述的方法,所述根据所述最大容许取值,根据所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值之后,所述方法还包括:
    获取所述点云的莫顿码集合;
    根据所述莫顿码集合和所述几何信息,在所述最大容许取值范围内,确定所述第一语法元素取值;
    根据所述第一语法元素取值,对所述点云进行细分层次划分。
  44. 一种解码器,包括:
    第一接收模块,用于接收点云码流,其中,所述点云码流包括:所述点云码流的几何信息和属性信息;
    第一确定模块,用于确定所述点云码流中包含的第一语法元素的最大容许取值;
    第一解析模块,用于解析所述点云码流,根据所述最大容许取值,确定所述第一语法元素取值;
    第二确定模块,用于根据所述第一语法元素取值,确定对所述属性信息解码过程中细节层次的数量;
    第一解码模块,用于根据所述细节层次的数量和所述几何信息,对所述属性信息进行解码,获得所述点云码流的重建点云。
  45. 一种编码器,包括:
    第一获取模块,用于获取点云的几何信息和属性信息;
    第一确定模块,用于确定第一语法元素的最大容许取值,其中,所述第一语法元素表示对所述点云的属性信息进行编码过程中细节层次的数量;
    第一划分模块,用于根据所述最大容许取值和所述点云的几何信息,对所述点云进行细分层次划分,确定所述第一语法元素取值;
    第一编码模块,用于根据对所述点云的细分层次划分,对所述点云进行编码,生成码流;
    第二编码模块,用于对所述第一语法元素取值进行编码,将编码比特写入码流。
  46. 一种解码器,包括:
    第二存储器和第二处理器;
    所述第二存储器存储有可在第二处理器上运行的计算机程序,所述第二处理器执行所述程序时实现权利要求1至19任一项所述点云分层方法。
  47. 一种编码器,包括:
    第一存储器和第一处理器;
    所述第一存储器存储有可在第一处理器上运行的计算机程序,所述第一处理器执行所述程序时实现权利要求20至43任一项所述点云分层方法。
  48. 一种存储介质,其上存储有计算机程序,该计算机程序被第一处理器执行时,实现权利要求1至19任一项所述点云分层方法;或者,该计算机程序被第二处理器执行时,实现权利要求20至43任一项所述点云分层方法。
PCT/CN2020/119707 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质 WO2022067790A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2023519889A JP2023549447A (ja) 2020-09-30 2020-09-30 点群階層化方法、デコーダ、エンコーダ及び記憶媒体
PCT/CN2020/119707 WO2022067790A1 (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质
CN202080105639.XA CN116261856A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质
CN202310888271.4A CN116744013A (zh) 2020-09-30 2020-09-30 一种点云分层方法及解码器、编码器、存储介质
KR1020237014820A KR20230079188A (ko) 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) JP2023549447A (zh)
KR (1) KR20230079188A (zh)
CN (2) CN116261856A (zh)
WO (1) WO2022067790A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 (5)

* Cited by examiner, † Cited by third party
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树的实时大规模地形可视化实现方法
JP7141543B2 (ja) * 2019-06-26 2022-09-22 テンセント・アメリカ・エルエルシー ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
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 哲库科技(北京)有限公司 一种小区选择方法及终端、存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP2023549447A (ja) 2023-11-27
US11983905B2 (en) 2024-05-14
US20230237705A1 (en) 2023-07-27
KR20230079188A (ko) 2023-06-05
CN116744013A (zh) 2023-09-12
CN116261856A (zh) 2023-06-13

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
JP4672735B2 (ja) 効果的なテクスチャマッピングのための3次元メッシュ情報のテクスチャ座標符号化及び復号化方法
US11785216B2 (en) Point cloud coding methods, encoder, and decoder
US20220210471A1 (en) Prediction method, encoder, decoder, and computer storage medium
CN114782564B (zh) 一种点云的压缩方法、装置、电子设备及存储介质
US20220329833A1 (en) Nearest neighbor search method, apparatus, device, and storage medium
WO2020248176A1 (zh) 点云处理的方法与装置
WO2022120594A1 (zh) 点云编解码方法、编码器、解码器及计算机存储介质
CN110349228B (zh) 一种数据驱动最小二乘预测的三角网格压缩方法
WO2022067782A1 (zh) 一种点云数据的层次划分方法、编码器及存储介质
WO2022217611A1 (zh) 编解码方法及相关设备、存储介质
CN116458158A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
CN116941242A (zh) 帧内预测方法及装置、编解码器、设备、存储介质
CN118175319A (zh) 点云编码方法、点云解码方法及相关设备
EP4233006A2 (en) Devices and methods for spatial quantization for point cloud compression
CN116233468A (zh) 点云解码方法、点云编码方法、装置、设备、介质及产品
Lincoln et al. Plane-Tree Low-Bitrate Mesh Compression
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