WO2023213074A1 - 点云处理方法、装置、设备、存储介质及产品 - Google Patents

点云处理方法、装置、设备、存储介质及产品 Download PDF

Info

Publication number
WO2023213074A1
WO2023213074A1 PCT/CN2022/137750 CN2022137750W WO2023213074A1 WO 2023213074 A1 WO2023213074 A1 WO 2023213074A1 CN 2022137750 W CN2022137750 W CN 2022137750W WO 2023213074 A1 WO2023213074 A1 WO 2023213074A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
point
point cloud
encoded
encoding
Prior art date
Application number
PCT/CN2022/137750
Other languages
English (en)
French (fr)
Inventor
朱文婕
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Publication of WO2023213074A1 publication Critical patent/WO2023213074A1/zh

Links

Images

Classifications

    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/18Methods 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 set of transform coefficients
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present application relates to the field of computer technology, specifically to the field of coding and decoding technology, and in particular to a point cloud processing method, a point cloud processing device, a computer device, a computer-readable storage medium and a point cloud processing product.
  • the point cloud can include multiple points, and each point in the point cloud has geometric characteristics. information and attribute information.
  • the encoding process requires sorting out the attribute information of each point in the point cloud, the waiting time for encoding the attribute information of each point in the point cloud is long and the encoding performance is low.
  • a point cloud processing method device equipment, storage medium and product are provided.
  • inventions of the present application provide a point cloud processing method, which is executed by a computer device.
  • the point cloud processing method includes:
  • the limit parameters include one or both of the cache limit parameters and the delay limit parameters;
  • the encoding process is controlled according to limiting parameters.
  • inventions of the present application provide another point cloud processing method, which is executed by a computer device.
  • the point cloud processing method includes:
  • the limit parameters include one or both of the cache limit parameter and the delay limit parameter;
  • the decoding process is controlled according to limiting parameters.
  • a point cloud processing device which includes:
  • the setting unit is used to set the limit parameters of the point cloud.
  • the limit parameters include one or both of cache limit parameters and delay limit parameters;
  • An acquisition unit used to acquire attribute information of points to be encoded in the point cloud
  • the processing unit is used to encode the attribute information of the to-be-encoded point; and to control the encoding process according to the restricted parameters.
  • embodiments of the present application provide another point cloud processing device, which includes:
  • the acquisition unit is used to obtain the encoding code stream of the point to be decoded in the point cloud, and obtain the restriction parameters of the point cloud.
  • the restriction parameters include one or both of a cache restriction parameter and a delay restriction parameter;
  • the processing unit is used to decode the coded code stream at the to-be-decoded point; and to control the decoding process according to the restricted parameters.
  • embodiments of the present application provide a computer device, which computer device includes a processor and a computer-readable storage medium; wherein the processor is adapted to implement computer-readable instructions, and the computer-readable storage medium stores computer-readable instructions,
  • the computer-readable instructions are suitable for being loaded by the processor and executing the above point cloud processing method.
  • embodiments of the present application provide a computer-readable storage medium that stores computer-readable instructions.
  • the computer-readable instructions When the computer-readable instructions are read and executed by a processor of a computer device, they cause the computer device to execute The above point cloud processing method.
  • inventions of the present application provide a computer program product.
  • the computer program product includes computer-readable instructions, and the computer-readable instructions are stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer-readable instructions from the computer-readable storage medium, and the processor executes the computer-readable instructions, so that the computer device executes the above-mentioned point cloud processing method.
  • Figure 1a is a schematic diagram of a coding framework provided by an embodiment of the present application.
  • Figure 1b is a schematic diagram of the relationship between the block where the current point is located and its parent block neighbors provided by an embodiment of the present application;
  • Figure 2 is an architectural diagram of a point cloud processing system provided by an embodiment of the present application
  • Figure 3 is a point cloud processing method provided by an embodiment of the present application.
  • Figure 4 is another point cloud processing method provided by an embodiment of the present application.
  • Figure 5 is another point cloud processing method provided by the embodiment of the present application.
  • Figure 6 is another point cloud processing method provided by the embodiment of the present application.
  • Figure 7 is a schematic structural diagram of a point cloud processing device provided by an embodiment of the present application.
  • Figure 8 is a schematic structural diagram of another point cloud processing device provided by an embodiment of the present application.
  • Figure 9 is a schematic structural diagram of an encoding device provided by an embodiment of the present application.
  • Figure 10 is a schematic structural diagram of a decoding device provided by an embodiment of the present application.
  • Point Cloud refers to a set of discrete points randomly distributed in space that express the spatial structure and surface properties of a three-dimensional object or scene.
  • Point clouds can be divided into different categories according to different classification standards. For example, according to the acquisition method of point clouds, they can be divided into dense point clouds and sparse point clouds. For example, according to the time series type of point clouds, they can be divided into It is divided into static point cloud and dynamic point cloud.
  • Point Cloud Data The geometric information and attribute information of each point in the point cloud together constitute point cloud data. Among them, geometric information can also be called three-dimensional position information.
  • the geometric information of a point in the point cloud refers to the spatial coordinates (x, y, z) of the point, which can include the direction of the point in each coordinate axis of the three-dimensional coordinate system.
  • the coordinate values for example, the coordinate value x in the X-axis direction, the coordinate value y in the Y-axis direction, and the coordinate value z in the Z-axis direction.
  • the attribute information of a certain point in the point cloud can include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity); usually, each point in the point cloud has the same amount of attribute information , for example, each point in the point cloud can have two attribute information: color information and laser reflection intensity information. Another example, each point in the point cloud can have three attributes: color information, material information and laser reflection intensity information. information.
  • Point cloud encoding refers to the process of encoding the geometric information and attribute information of each point in the point cloud to obtain a compressed code stream.
  • Point cloud encoding can include two main processes: geometric information encoding and attribute information encoding.
  • the current mainstream point cloud coding technology can be divided into geometric structure-based point cloud coding and projection-based point cloud coding for different types of point clouds.
  • MPEG Motion Picture Expert Group, international video and audio codec standard
  • G-PCC Geometry-based Point Cloud Compression, point cloud coding based on geometric structure
  • AVS-PCC Point Cloud Compression, point cloud coding based on geometric structure
  • AVS AnaudioVideoCodingStandard, China's national video coding standard
  • the coding framework of G-PCC and AVS-PCC is roughly the same, as shown in Figure 1a, which can be divided into a geometric information coding process and an attribute information coding process.
  • the geometric information encoding process encodes the geometric information of each point in the point cloud data to obtain a geometry bit stream;
  • the attribute information encoding process encodes the attribute information of each point in the point cloud data to obtain an attribute bit stream;
  • the geometry bit stream and attribute bits The streams together form a compressed code stream of point cloud data.
  • Pre-Processing can include coordinate transformation (Transform Coordinates) and voxelize (Voxelize). Through scaling and translation operations, the point cloud data in the three-dimensional space is converted into integer form, and its minimum geometric position is moved to the coordinate origin.
  • coordinate transformation Transform Coordinates
  • Voxelize voxelize
  • Geometric octree (Octree) encoding:
  • the octree is a tree-shaped data structure. In the three-dimensional space division, the preset bounding box is evenly divided, and each node has eight child nodes. By using "1" and "0" to indicate whether each sub-node of the octree is occupied, the occupancy code information (Occupancy Code) is obtained as the code stream of the point cloud geometry information.
  • Bounding box is an algorithm for solving the optimal bounding space of a discrete point set. The basic idea is to approximately replace complex geometric objects with slightly larger geometric objects (called bounding boxes) with simple characteristics.
  • 3Geometry Entropy Encoding Perform statistical compression encoding on the occupancy code information of the octree, and finally output a binary (0 or 1) compressed code stream.
  • Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal.
  • a commonly used statistical coding method is context-based binary arithmetic coding (Content Adaptive Binary Arithmetic Coding, CABAC).
  • 2Attribute transformation Transform attributes
  • Use attribute transformation algorithms such as DCT, Haar, etc.
  • attribute reconstruction values are obtained after inverse transformation; calculate the original attributes
  • the difference between the attribute reconstruction value and the attribute reconstruction value is used to obtain the attribute residual and quantize it; the quantized transformation coefficient and attribute residual are encoded.
  • 3Attribute information quantization (Attribute Quantization): The degree of refinement of quantification is usually determined by the quantization parameters.
  • attribute prediction coding entropy coding is performed on the quantized prediction residual information; in attribute transform coding and attribute prediction transform coding, entropy coding is performed on the quantized transform coefficients.
  • 4Attribute Entropy Coding The quantized prediction residual information or transformation coefficients generally use Run Length Coding and Arithmetic Coding to achieve final compression.
  • the corresponding coding mode, quantization parameters and other information are also encoded using the entropy encoder.
  • Point cloud decoding refers to the process of decoding the compressed code stream obtained by point cloud encoding to reconstruct the point cloud; specifically, it refers to reconstructing each point in the point cloud based on the geometry bit stream and attribute bit stream in the compressed code stream. The process of geometric information and attribute information. After the compressed code stream is obtained at the decoder, for the geometric bit stream, entropy decoding is first performed to obtain the quantized geometric information of each point in the point cloud, and then inverse quantization is performed to reconstruct the geometric information of each point in the point cloud.
  • entropy decoding is first performed to obtain the quantized prediction residual information or quantized transformation coefficients of each point in the point cloud; then the quantized prediction residual information is inversely quantized to obtain the reconstructed residual information.
  • the quantized transformation coefficients are inversely quantized to obtain the reconstruction transformation coefficients.
  • the reconstruction transformation coefficients are inversely transformed to obtain the reconstruction residual information.
  • the attribute information of each point in the point cloud can be reconstructed.
  • the reconstructed attribute information of each point in the point cloud is corresponding to the reconstructed geometric information in order to reconstruct the point cloud.
  • the coordinates (x, y, z) of the point cloud generate the Morton code or Hilbert code of each point based on the space filling curve, and follow the coding order when coding each point ( Such as sorting from smallest to largest) to get Morton order or Hilbert order.
  • the geometric position of the point cloud is represented by three-dimensional Cartesian coordinates (X, Y, Z).
  • N bits to represent each coordinate value the coordinates of the k-th point (X k , Y k , Z k ) can be expressed as:
  • the Morton code corresponding to the k-th point can be expressed as follows:
  • Order-based neighbor point selection includes distance-based selection methods, spatial relationship-based and distance-based selection methods. The above methods are introduced below:
  • the k neighbor candidate points with the shortest Manhattan distances can be used as neighbors of the current point to be decoded; or, k Manhattan distances can be determined
  • the maximum distance value among the shortest points, all neighbor candidate points whose Manhattan distance is less than or equal to the maximum distance value are regarded as neighbors of the current point, and finally the m points with the shortest Manhattan distance are determined as the nearest neighbors of the current point to be decoded, m, k are Positive integer, and m ⁇ k.
  • determine the initial block size that is, determine the initial right shift number N of the codeword corresponding to each point.
  • N+3 is the corresponding parent block range.
  • the point cloud is traversed in a certain order.
  • the current point to be decoded (point P) is decoded within the range of the parent block of block B and its coplanar, collinear and common neighbor blocks. Points (limited to the range of the first k points) perform nearest neighbor search.
  • neighbor point selection is performed according to the distance-based method in i).
  • the reciprocal of the Manhattan distance between the current point to be decoded and the neighbor point is used as the weight, and finally the weighted average of the attribute reconstruction values of k neighbor points is calculated to obtain the attribute prediction value.
  • the geometric coordinates of the current point to be decoded are (x i , y i , z i )
  • the geometric coordinates of the j-th neighbor point are (x ij , y ij , z ij )
  • the weight of the j-th neighbor point w ij for:
  • the weight w ij of the j-th neighbor point is:
  • attribute transformation is attribute coding that combines prediction and transformation.
  • the specific process is as follows:
  • the point cloud to be encoded after color space conversion and recoloring is reordered from small to large according to the Hilbert code, and then adaptive grouping and corresponding K-element transformation are used.
  • the specific process is as follows:
  • the point clouds are grouped sequentially based on the order of the space filling curve, and the points with the same first L bits of the Hilbert code are grouped into one group. When the number of points in the same group exceeds the preset limit points, the group is subdivided. In addition, when grouping, you can also adjust according to the grouping points of the previous group.
  • the prediction point selection range is among the P points preceding the first point in the current group, and P can be determined by the maximum number of neighbors field (maxNumOfNeighbours). Predict these P points point by point, and select or calculate a unified prediction value for each group. For example, the predicted value of the first point of the current group is used as the predicted value of the current group.
  • DCT Discrete Cosine Transform
  • Entropy coding can use variable length coding, context-based adaptive binary arithmetic coding, run-length coding, etc. Specifically:
  • Codewords of different lengths are used to represent the residuals or coefficients that need to be encoded.
  • the code length needs to be designed based on the probability of symbol occurrence.
  • Commonly used variable-length codes include exponential Golomb coding (exp-Golomb) and arithmetic coding.
  • CABAC Context-based adaptive binary arithmetic coding
  • CABAC uses binary arithmetic encoding, which means that only two numbers (1 or 0) are encoded.
  • a non-binary numerical symbol such as a conversion coefficient or motion quantity, is first binarized or converted into a binary codeword before arithmetic encoding. This process is similar to converting a numerical value into a variable-length codeword. In the specific implementation process, this binary codeword will be further encoded by an arithmetic encoder before transmission.
  • Context model selection is a probabilistic model that is selected based on the statistics of the most recent encoded data symbols. This model stores the probability that each 'bin' is 1 or 0.
  • Arithmetic encoding The arithmetic encoder encodes each ‘bin’ according to the selected probability model.
  • Probabilistic update The selected context model will be updated based on the actual encoding value. For example, if the value of 'bin' is 1, then the frequency count of 1 will be incremented.
  • the number of consecutive points with a specific symbol in the statistical data is recorded as the run-length. If the current symbol is zero, the run-length value is increased by 1; if it is non-zero, the run_length value is first encoded, then the non-zero attribute prediction residual is encoded, and finally the run-length value is set to 0 to restart counting.
  • the residual can use commonly used entropy coding methods, such as variable length coding or CABAC.
  • run-length coding is divided into two types: fixed-length run-length coding and variable-length run-length coding.
  • Fixed-length run encoding means that the number of binary digits used in the encoding run is fixed.
  • Variable-length run encoding refers to encoding different ranges of runs using different digits of binary digits, and a flag bit needs to be added to indicate the number of binary digits used.
  • embodiments of the present application provide a point cloud processing solution when it is necessary to process points in point clouds.
  • you can set the limit parameters of the point cloud obtain the attribute information of the points to be encoded in the point cloud, encode the attribute information of the points to be encoded, and control the encoding process according to the limit parameters.
  • the embodiment of the present application makes the encoding and decoding process of attribute information of each point in the point cloud controllable through the restriction parameters of the point cloud, thereby improving the encoding and decoding performance of the attribute information of the point cloud.
  • Cloud Computing is a computing model that distributes computing tasks on a resource pool composed of a large number of computers, enabling various application systems to obtain computing power, storage space and information services as needed.
  • Cloud computing can be a point
  • the encoding stage of cloud attributes and the decoding stage of point cloud attributes provide powerful computing support, which can greatly improve the encoding efficiency of point cloud attributes and improve the decoding efficiency of point cloud attributes.
  • Cloud Storage is a new concept that extends and develops from the concept of cloud computing.
  • Distributed cloud storage systems (hereinafter referred to as storage systems) refer to functions such as cluster applications, grid technology, and distributed storage file systems.
  • a storage system that brings together a large number of storage devices of various types in the network (storage devices are also called storage nodes) to work together through application software or application interfaces to jointly provide data storage and business access functions to the outside world.
  • Cloud storage can provide
  • the encoding stage of point cloud attributes and the decoding stage of point cloud attributes provide powerful storage support, which can further improve the encoding efficiency of point cloud attributes and improve the decoding efficiency of point cloud attributes.
  • the point cloud processing solution provided by the embodiments of this application can also be combined with artificial intelligence.
  • the embodiments of this application mainly relate to deep learning technology in artificial intelligence.
  • the model used in the encoding and decoding process can be optimized and trained through a training data set. For example, the initial model can be trained through the training data set to obtain the context model.
  • the point cloud processing system 20 may include an encoding device 201 and a decoding device 202.
  • the encoding device 201 may be a terminal or a server.
  • the decoding device 202 may be a terminal or a server.
  • the encoding device 201 and A communication connection may be established between the decoding devices 202 .
  • the terminal can be a smartphone, a tablet computer, a notebook computer, a desktop computer, a smart speaker, a smart watch, a vehicle terminal, a smart TV, etc., but is not limited thereto.
  • the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers. It can also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, and middleware. Cloud servers that provide basic cloud computing services such as software services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.
  • cloud databases cloud databases
  • cloud computing cloud functions
  • cloud storage network services
  • cloud communications and middleware.
  • Cloud servers that provide basic cloud computing services such as software services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.
  • CDN Content Delivery Network
  • the encoding device 201 can obtain point cloud data (ie, the geometric information and attribute information of each point in the point cloud).
  • the point cloud data can be obtained through scene capture or device generation.
  • Scene capture point cloud data refers to collecting real-world visual scenes through the capture device associated with the encoding device 201 to obtain point cloud data; wherein, the capture device is used to provide point cloud data acquisition services for the encoding device 201, and the capture device may include but not Limited to any of the following: camera equipment, sensing equipment, scanning equipment; among them, camera equipment can include ordinary cameras, stereo cameras, and light field cameras, etc., sensing equipment can include laser equipment, radar equipment, etc., and scanning equipment can include Three-dimensional laser scanning equipment, etc.; the capture device associated with the encoding device 201 may refer to the hardware components provided in the encoding device 201.
  • the capture device is a camera, sensor, etc. of the terminal.
  • the capture device associated with the encoding device may also refer to the encoding device.
  • the point cloud data generated by the device refers to the point cloud data generated by the encoding device 201 based on virtual objects (such as virtual three-dimensional objects and virtual three-dimensional scenes obtained through three-dimensional modeling).
  • the encoding device 201 can encode the geometric information of each point in the point cloud to obtain a geometric bit stream (including the geometric encoding information of each point in the point cloud), and can encode the attribute information of each point in the point cloud to obtain Attribute bitstream (contains attribute encoding information of each point in the point cloud).
  • the encoding device 201 encodes the attribute information of the points to be encoded in the point cloud, it can set the restriction parameters of the point cloud, and encode the obtained attribute information of the points to be encoded based on the restriction parameters of the point cloud, thereby control the coding process.
  • the encoding device 201 transmits the compressed code stream (ie, attribute bit stream and geometry bit stream) to the decoding device 202 .
  • the decoding device 202 After receiving the compressed code stream (i.e., attribute bit stream and geometry bit stream) transmitted by the encoding device 201, the decoding device 202 can decode the geometry bit stream, reconstruct the geometric information of each point in the point cloud, and can process the attribute bit stream. Perform decoding processing to obtain attribute information of each point in the point cloud.
  • the decoding device 202 decodes a point to be decoded in the point cloud, it can obtain the restriction parameters of the point cloud, and decode the obtained encoding stream of the point to be decoded based on the restriction parameters of the point cloud, thereby decoding The process is controlled.
  • the decoding device 202 After obtaining the reconstructed geometric information and reconstructed attribute information of each point in the point cloud, the decoding device 202 corresponds the reconstructed geometric information and reconstructed attribute information of each point in the point cloud one-to-one to reconstruct the point cloud.
  • the restriction parameters of the point cloud can be set, the attribute information of the points to be encoded in the point cloud is obtained, and the attribute information of the points to be encoded is encoded, and
  • the encoding process is controlled according to limiting parameters.
  • the embodiment of the present application makes the encoding and decoding process of attribute information of each point in the point cloud controllable through the restriction parameters of the point cloud, thereby improving the encoding and decoding performance of the attribute information of the point cloud.
  • the point cloud processing system described in the embodiments of the present application is to more clearly illustrate the technical solutions of the embodiments of the present application, and does not constitute a limitation on the technical solutions provided by the embodiments of the present application.
  • Those of ordinary skill in the art will know that , with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
  • Figure 3 is a point cloud processing method provided by an embodiment of the present application.
  • the point cloud processing method can be executed by a computer device.
  • the computer device can be the point cloud processing system 20 shown in Figure 2.
  • the point cloud processing method may include the following steps S301 to S303:
  • the limit parameters include one or both of cache limit parameters and delay limit parameters.
  • the restriction parameters are used to set the trigger conditions for encoding the attribute information of the points to be encoded in the point cloud.
  • the restriction parameters may include at least one of a cache restriction parameter and a delay restriction parameter; wherein the cache restriction parameter is used to control the caching logic in the encoding process, for example, when the attribute information of the point to be encoded in the cache queue corresponds to the intermediate The number of coefficients (such as residuals, transformation coefficients, etc.
  • the computer device encodes the intermediate coefficient corresponding to the attribute information of the point to be encoded in the cache queue; similarly, the delay limit parameter is used to control the encoding logic in the encoding process, For example, when the delay number of the intermediate coefficients corresponding to the attribute information of the point to be encoded meets the trigger condition set based on the delay limit parameter (for example, when the delay number of the intermediate coefficients corresponding to the attribute information of the point to be encoded reaches the delay threshold indicated by the delay parameter) , the computer device (encoding device) encodes the intermediate coefficients corresponding to the attribute information of the point to be encoded, and the delay number is used to indicate the number of intermediate coefficients corresponding to the attribute information of the current point to be encoded.
  • the delay limit parameter such as the number of intermediate coefficients corresponding to the attribute information of the point to be encoded in the cache queue reaches the cache parameter
  • the delay limit parameter is used to control the encoding logic in the encoding process. For example, when the delay number of the intermediate coefficients corresponding to
  • the setting methods of restriction parameters include any one or more of the following: setting the restriction parameters to default values; setting the restriction parameters to fixed values, and encapsulating the set restriction parameters into the encoding code stream formed by encoding; Set to a variable value, and encapsulate the set restriction parameters into the encoding stream formed by encoding. For example, set the restriction parameter to a in encoding stream 1, and set the restriction parameter to b in encoding stream 2.
  • the attribute information of the point to be encoded can include at least one of the following: color information, material information, laser reflection intensity information (also called reflectivity); usually, each point in the point cloud has the same amount of attribute information, for example, Each point in the point cloud can have two attribute information: color information and laser reflection intensity information. For another example, each point in the point cloud can have three attribute information: color information, material information and laser reflection intensity information.
  • the attribute information of the points to be encoded can be generated based on data collected by a collection device (such as a camera, 3D laser scanner), or it can be directly generated by a computer based on virtual three-dimensional objects and scenes.
  • the method of encoding the attribute information of the to-be-coded point includes: encoding the attribute information of the to-be-coded point in units of points, and encoding the attribute information of the to-be-coded point in the unit of group number.
  • Coding in units of points refers to coding one point in the point cloud as the basic coding unit;
  • coding in units of groups refers to grouping a point cloud (a group can include at least one point cloud). point) as the basic coding unit for coding.
  • the computer device encodes the attribute information of the to-be-coded point in units of points as follows: converting the attribute information of the to-be-coded point to obtain an intermediate coefficient of the to-be-coded point; wherein, The conversion processing of attribute information can be: predict the attribute information of the point to be encoded, and obtain the residual between the prediction information of the point to be encoded and the attribute information of the point to be encoded; it can also be: after obtaining the residual, convert the residual Transformation is performed to obtain the transformation coefficient; that is, the attribute information of the point to be coded is transformed, and the obtained intermediate coefficient of the point to be coded can be a residual or a transformation coefficient.
  • the computer device can write the intermediate coefficient of the point to be encoded into the cache, and read the intermediate coefficient of the point to be encoded from the cache for encoding; for example, the computer device can encode the point to be encoded
  • the intermediate coefficients are written to the cache queue set based on the cache limit parameters.
  • the computer device reads the to-be-coded points from the cache queue.
  • the intermediate coefficients of the coding points are encoded.
  • the computer device can also obtain the delay number of the intermediate coefficient of the current point to be encoded.
  • the computer device encodes the intermediate coefficient of the current point to be encoded.
  • the attribute information of the point to be encoded is converted in units of points, the obtained intermediate coefficients are written into the cache, and the intermediate coefficients are read from the cache for encoding, which can delay the point cloud encoding process. Control can avoid long waiting time for point cloud encoding and help improve the encoding and decoding performance of point cloud attribute information.
  • the computer device encodes the attribute information of the points to be encoded in units of group numbers as follows: grouping the attribute information of the points to be encoded to obtain multiple groups of point cloud groups.
  • the basis for grouping can be set according to actual encoding requirements.
  • the computer device can group the attribute information of the to-be-encoded points based on the order of the space filling curve; for example, the computer device can group the first L bits of the Hilbert code with the same
  • the attribute information of the points to be encoded are grouped into one group.
  • the computer device can convert the attribute information of the points to be encoded in the point cloud group to obtain the converted point cloud group; and convert the attribute information of the points to be encoded in the point cloud group.
  • the specific implementation of can refer to the previous embodiment.
  • the converted point cloud group contains intermediate coefficients of the points to be encoded, and the intermediate coefficients include residuals or transformation coefficients.
  • the computer device can write the converted point cloud group into the cache, and sequentially read the intermediate coefficients of the points to be encoded in the converted point cloud group from the cache for encoding; For example, the computer device can write the converted point cloud group into a cache queue set based on the cache limit parameter. When the cache queue is full (for example, the converted point cloud group stored in the cache queue reaches the cache threshold), The computer device reads the converted point cloud packets from the cache queue for encoding. The computer device may also obtain the delay number of the current converted point cloud grouping. If the delay number of the currently converted point cloud grouping reaches the delay threshold, the computer device encodes the current converted point cloud grouping.
  • the attribute information of the point to be encoded is converted in units of groups, the obtained intermediate coefficients are written into the cache, and the intermediate coefficients are read from the cache for encoding.
  • the point cloud encoding process can be carried out. Delay control can avoid long waiting time for point cloud encoding and help improve the encoding and decoding performance of point cloud attribute information.
  • the restriction parameters of the point cloud can be set, the attribute information of the points to be encoded in the point cloud is obtained, and the attribute information of the points to be encoded is encoded, and
  • the encoding process is controlled according to limiting parameters.
  • the embodiment of the present application sets the limiting parameters of the point cloud to control the encoding process of the attribute information of the point to be encoded, thereby improving the encoding performance of the point cloud attribute information.
  • Figure 4 is another point cloud processing method provided by an embodiment of the present application.
  • the point cloud processing method can be executed by a computer device.
  • the computer device can be the point cloud processing system 20 shown in Figure 2.
  • the point cloud processing method may include the following steps S401 to S405:
  • the limit parameters include one or both of the cache limit parameter (coeffLengthControl) and the delay limit parameter (maxNumofCoeff).
  • the limit parameter is used to determine the encoding limit point threshold.
  • the unit of the limiting parameter includes any of the following: points as the unit, group number as the unit.
  • Limiting in units of points means limiting the number of points to be encoded when encoding in units of points;
  • limiting in units of groups means limiting the number of groups to be encoded when encoding in units of groups. Number of groups.
  • the limit parameter is a cache limit parameter
  • the encoding limit point threshold is the cache limit point threshold;
  • the unit of the cache limit parameter can be points or groups.
  • the limit parameter is a delay limit parameter
  • the encoding limit point threshold is the delay limit point threshold; the unit of the delay limit parameter can be the number of points or the number of groups.
  • the encoding limit point threshold is the actual total number of intermediate coefficients of X1 points to be encoded; for example, assuming that the limit parameter is a cache limit parameter, in points, And the value of the cache limit parameter is 1024, then the encoding limit point threshold is the actual total number of intermediate coefficients of 1024 points to be encoded; for another example, assume that the limit parameter is a delay limit parameter, in points, and the value of the delay limit parameter is 2048, then the encoding limit point threshold is the actual total number of intermediate coefficients of 2048 points to be encoded.
  • the encoding limit point threshold is the actual total number of intermediate coefficients of points to be encoded in the parameter, in the unit of group number, and the value of the cache limit parameter is 64, then the encoding limit point threshold is the actual total number of intermediate coefficients of the points to be encoded in the 64 point cloud groupings; assuming that the limit parameter is the delay limit parameter, with The number of groups is the unit, and the value of the delay limit parameter is 128, then the encoding limit point threshold is the actual total number of intermediate coefficients of the points to be encoded in the 128 point cloud groupings.
  • the limit parameter is based on the number of groups, and the value of the limit parameter is X3, and the number of points in each point cloud group is limited to Quantity, the total quantity does not exceed the value of X3*X4.
  • the limit parameter is the cache limit parameter
  • the unit is the number of groups
  • the value of the cache limit parameter is 64
  • the number of points in each point cloud grouping is limited to 4
  • the encoding limit point threshold is 64 points in the point cloud grouping.
  • the number of points to be encoded that need to be delayed controlled during encoding is determined accordingly, so that the encoding process in various restriction parameter setting scenarios can be accurately delayed controlled to ensure Encoding and decoding performance of point cloud attribute information.
  • the unit of the limiting parameter when the limiting parameter includes two kinds of parameters, includes any one or more of the following: in points, in groups, and in multiples; where, the limiting parameter The unit of parameter 1 is a multiple: when the restriction parameter 2 limits the number of points to be encoded in units of points, the restriction parameter 1 limits the number of points to be encoded in units of points, and the restriction parameter 1 limits the number of points to be encoded.
  • the restriction parameter 1 limits the number of packets to be encoded in the unit of the number of groups
  • the restriction parameter 1 limits the number of packets to be encoded and the restriction parameter 2 limits the number of packets to be encoded.
  • the cache limit parameter and the delay limit parameter are combined to determine the number of points to be encoded that need to be delayed controlled during encoding, and the encoding in the scenario of limit parameter settings including the cache limit parameter and the delay limit parameter can be determined.
  • the process carries out accurate delay control to ensure the encoding and decoding performance of point cloud attribute information.
  • the combination methods include: Limit Parameter 1 and Limit Parameter 2 are both in points, or in groups; Limit Parameter 1 is in points, Limit Parameter 2 is in groups, or Limit Parameter 2 The unit is multiples; limit parameter 1 is in the number of groups, limit parameter 2 is in points, or limit parameter 2 is in multiples.
  • the above-mentioned restriction parameter 1 may be any one of the cache restriction parameter and the delay restriction parameter, and the above-mentioned restriction parameter 2 may be the other one of the cache restriction parameter and the delay restriction parameter.
  • step S402 For the specific implementation of step S402, reference may be made to the implementation of step S302 in FIG. 3 .
  • restriction parameter is a cache restriction parameter
  • restriction parameter is a delay restriction parameter
  • the restriction parameter includes a cache restriction parameter and a delay restriction parameter, continue to execute step S405.
  • the cache limit parameter is used to limit the number of points to be encoded that are allowed to be written in the cache, and each point to be encoded may include one or more intermediate coefficients.
  • the cache limit parameter is used to control the number of points to be encoded that are allowed to be written in the cache, so that the encoding process of attribute information of the points to be encoded is controllable, which can avoid long waiting times for point cloud encoding, thereby improving the encoding performance of point cloud attribute information.
  • the computer device determines a cache limit point threshold according to the cache limit parameter.
  • the cache limit point threshold is used to limit the number of points to be encoded that are allowed to be written in the cache.
  • the computer device reads the intermediate coefficients of the points to be encoded from the cache for encoding.
  • the cache limit point threshold determined by the cache limit parameter controls the number of points to be encoded that are allowed to be written in the cache. Encoding is triggered when the number of points to be encoded that is allowed to be written in the cache reaches the cache limit point threshold, which can avoid The waiting time for point cloud encoding is too long, thereby improving the encoding performance of point cloud attribute information.
  • the encoding method is a group number-based encoding method, that is, a group in the point cloud is encoded as a basic encoding unit.
  • the computer device counts the points to be encoded contained in each point cloud grouping in the cache. The total number of points.
  • the computer device reads the M groups of point cloud groups contained in the cache from the cache. The intermediate coefficient of the point to be encoded is encoded.
  • the computer device clears the cache and continues to write the intermediate coefficients of the points to be encoded into the cache.
  • the total number of points to be encoded in all point cloud groups is controlled by the cache limit point threshold, so as to control the delay in the encoding process of the attribute information of the points to be encoded, which is beneficial to improving the points. Encoding performance of cloud attribute information.
  • the encoding method is a group number-based encoding method, that is, a group in the point cloud is used as a basic encoding unit to encode.
  • the computer device counts the number of point cloud groupings M contained in the cache, based on M and points
  • the computer device controls to read the intermediate coefficients of the points to be encoded contained in M sets of point cloud groups from the cache for encoding. Further, the computer device clears the cache and continues to write the intermediate coefficients of the points to be encoded into the cache.
  • the number of points to be encoded in each point cloud group is controlled by the point limit threshold, and the total number of points to be encoded in all point cloud groups is controlled by the cache limit threshold. Delay control in the encoding process of attribute information of points to be encoded is beneficial to improving the encoding performance of point cloud attribute information.
  • the encoding method is a group number-based encoding method, that is, encoding a group in the point cloud (a group may include at least one point in the point cloud) as a basic encoding unit.
  • the computer device determines a group number threshold of point cloud groups written in the cache that is allowed to be written according to the cache limit parameter; whenever the number of point cloud groups written in the cache reaches the group number threshold, the computer device reads the write in the cache from the cache
  • the point cloud grouping contains the intermediate coefficients of the points to be encoded for encoding. For example, if the value of the cache limit parameter is 64, the computer device determines that the number of point cloud groups allowed to be written in the cache is 64 according to the cache limit parameter.
  • the computer device reads the intermediate coefficients of the points to be encoded contained in these 64 point cloud groups from the cache for encoding.
  • the number of point cloud groups allowed to be written in the cache is delayed controlled by the group number threshold, which is beneficial to improving the encoding performance of point cloud attribute information.
  • the computer device can arrange the point cloud groups written in the cache according to a preset arrangement, and encapsulate the preset arrangement into the encoded code stream formed by encoding; the computer device can arrange the point cloud groups in the cache in the middle
  • a specific implementation method of encapsulating the coefficient arrangement into the encoding code stream formed by encoding is: each arrangement corresponds to an index value, and the computer device writes the index value corresponding to the intermediate coefficient arrangement of the point cloud group in the cache into the encoding in the code stream.
  • the computer device can also arrange the point cloud groups written in the cache according to a preset arrangement, and send the preset arrangement directly to the decoding device; the computer device can also group the point clouds written in the cache according to the default arrangement. Arrange. It can be understood that when arranging the point cloud groups written in the cache according to the default arrangement, the computer device does not need to inform the decoding device of the arrangement.
  • the preset arrangement method includes any of the following: fixed arrangement method and dynamic arrangement method; the fixed arrangement method refers to the intermediate coefficient arrangement method of each cached point cloud grouping (such as according to similarity, according to the to-be-coded content included in the grouping). The number of points, etc.) is the same.
  • the dynamic arrangement means that the arrangement of the intermediate coefficients of the cached point cloud grouping changes; for example, the arrangement of the intermediate coefficients of the first cached point cloud grouping is different from the arrangement of the intermediate coefficients of the second cached point cloud grouping.
  • the intermediate coefficients are arranged in the same way, and the intermediate coefficients of the third cached point cloud grouping are arranged in a different way.
  • the point cloud groups written in the cache are arranged in either a fixed arrangement or a dynamic arrangement, which can ensure the orderly encoding of the point cloud and help improve the decoding of the encoded code stream. processing efficiency.
  • the encoding includes run-length encoding
  • the computer device determines a cache limit point threshold of the points to be encoded that are allowed to be written in the cache according to the cache limit parameter, and the cache limit point threshold is used to limit the number of points allowed to be written into the cache during the encoding process.
  • the number threshold of points to be encoded; the determination method of the cache limit point threshold can refer to the determination method of the encoding limit point threshold in step S401.
  • run-length encoding the computer device sets the run length used to count consecutive specific symbols. At the beginning, the run length is set to the initial value.
  • the count value of the run length is increased by one step. long; if the number of read points to be encoded is equal to the cache limit point threshold, the current run length is encoded, or the cache limit point threshold and the intermediate coefficient of the to-be-encoded point with a value of a specific symbol are encoded, and the run length is Set to initial value to restart counting. If the value of the intermediate coefficient of the point to be encoded with a non-specific symbol is read, the current run length and the intermediate coefficient of the non-specific symbol are encoded, and the run length is reset to the initial value to re-count.
  • the cache limit parameter is in points and has a value of 1024 (that is, the cache limit point is 1024)
  • the computer device uses run-length coding to encode the residual of the attribute information of the to-be-coded point, then the computer device statistics to be coded
  • the number of consecutive points with a specific symbol (such as 0) in the residual of the attribute information of the point is recorded as run-length.
  • the run-length value increases by 1, every time When the number of points to be encoded in the cache reaches 1024, the computer device encodes the value of run-length and the residual of the attribute information of the current encoding point, sets run-length to the initial value (such as 0), and re-processes run-length. count. If the residual of the attribute information of the current point to be encoded is a non-specific symbol (such as non-0), the computer device encodes the current run-length value and the residual of the attribute information of the current point to be encoded, and sets the run-length to Initial value (such as 0), and count run-length again.
  • the encoding control is performed on the intermediate coefficients of different symbols through the run length, so that the intermediate coefficients of different symbols are encoded separately, which is beneficial to ensuring the point cloud Encoding performance of attribute information.
  • the delay limit parameter is used to delay control the number of points to be encoded, so that the encoding process of attribute information of the points to be encoded is controllable, which can avoid long waiting time for point cloud encoding, thereby improving the encoding performance of point cloud attribute information.
  • the specific coding method used by the computer device to encode the attribute information of the code point to be coded is a coding method that requires statistics on the preamble; for example, the specific coding method used by the computer device to code the property information of the code point to be coded may be run-length coding. The following uses the encoding method of run-length encoding as an example to illustrate:
  • the computer device determines a delay limit point threshold based on the delay limit parameter.
  • the delay limit point threshold is used to limit the number of points to be encoded that are allowed to be delayed during the encoding process; the method of determining the delay limit point threshold can refer to step S401 How to determine the coding limit point threshold.
  • run-length encoding set the run length used to count consecutive specific symbols, and set the run length to an initial value (such as 0).
  • the computer device reads the intermediate coefficient whose value is a specific symbol, then the count value of the stroke length is increased by one step, and the computer device obtains the count value of the stroke length.
  • the computer device performs parameters Encoding processing and resetting the run length to the initial value for counting again.
  • the computer device performs parameter encoding processing means: the computer device encodes the current stroke length; or the computer device encodes a limit identifier, and the limit identifier is used to set the stroke length to a preset value (for example, the preset value can be is a delay limit point threshold); alternatively, the computer device encodes the delay limit point threshold and an intermediate coefficient whose value is a point to be encoded of a specific symbol. If the computer device reads the intermediate coefficient of the point to be encoded whose value is a non-specific symbol, it encodes the current run length and the intermediate coefficient of the non-specific symbol, and resets the run length to the initial value to re-count.
  • the current run length is 63
  • the specific symbol is 0, and the delay limit point threshold is 64
  • the computer device encodes the current run length (64), or the computer device encodes the limit identifier, or the computer device encodes the delay limit point threshold (64), and the intermediate coefficient whose value is the point to be encoded of the specific symbol, And reset the run length to the initial value to re-count
  • the computer device will calculate the current run length (63) and the value of 1
  • the intermediate coefficients of the points to be encoded are encoded and the run length is reset to the initial value to re-count.
  • the encoding control is performed on the intermediate coefficients of different symbols through the run length,
  • the parameter encoding process is performed, and the encoding process is performed when the intermediate coefficients of non-specific symbols are read, so that the intermediate coefficients of different symbols are separately encoded, which is beneficial to ensuring the point cloud properties.
  • Information encoding performance when the intermediate coefficients of the points to be encoded are read sequentially from the cache, the encoding control is performed on the intermediate coefficients of different symbols through the run length, When the count value of the run length reaches the delay limit point threshold, the parameter encoding process is performed, and the encoding process is performed when the intermediate coefficients of non-specific symbols are read, so that the intermediate coefficients of different symbols are separately encoded, which is beneficial to ensuring the point cloud properties.
  • Information encoding performance when the intermediate coefficients of the points to be encoded are read sequentially from the cache, the encoding control is performed on the intermediate coefficients of different symbols through the run length, When the count value of the run length reaches the delay
  • the computer device determines a delay limit point threshold according to the delay limit parameter.
  • the delay limit point threshold is used to limit the number of points to be encoded that are allowed to be delayed during the encoding process.
  • the method of determining the delay limit point threshold can refer to steps How to determine the coding limit point threshold in S401. In the process of run-length encoding, set the run length used to count consecutive specific symbols, and set the run length to an initial value (such as 0).
  • the computer device In the process of sequentially reading the intermediate coefficients of the points to be encoded from the cache, if When the computer device reads the intermediate coefficient whose value is a specific symbol, the count value of the run length is increased by one step; if the number of points to be encoded reaches the delay limit point threshold, the computer device encodes the current run length, or the computer device The delay limits the point threshold and the intermediate coefficients whose values are the points to be encoded for a specific symbol are encoded and the run length is reset to the initial value to re-count. If the computer device reads the intermediate coefficient of the point to be encoded whose value is a non-specific symbol, the computer device encodes the current run length and the intermediate coefficient of the non-specific symbol, and resets the run length to the initial value to re-count.
  • the encoding control is performed on the intermediate coefficients of different symbols through the run length
  • Parameter encoding is performed when the number of points to be encoded reaches the delay limit point threshold
  • encoding is performed when intermediate coefficients of non-specific symbols are read, so that intermediate coefficients of different symbols are encoded separately, which is beneficial to ensuring point cloud attributes.
  • Information encoding performance when the intermediate coefficients of the points to be encoded are read sequentially from the cache, the encoding control is performed on the intermediate coefficients of different symbols through the run length, Parameter encoding is performed when the number of points to be encoded reaches the delay limit point threshold, and encoding is performed when intermediate coefficients of non-specific symbols are read, so that intermediate coefficients of different symbols are encoded separately, which is beneficial to ensuring point cloud attributes.
  • Information encoding performance is performed when the number of points to be encoded reaches the delay limit point threshold
  • the run length in the run length encoding is less than or equal to the delay limit point threshold; based on this, the computer device can also set the number of bits of the run length according to the delay limit point threshold, thereby ensuring that the run length is not Exceeding the delay limit point threshold ensures that encoding control can be carried out for intermediate coefficients of different symbols through run length, which is beneficial to ensuring the encoding performance of point cloud attribute information.
  • the delay limit parameter is in points and has a value of 1024 (that is, the delay limit point is 1024)
  • the computer device statistics to be encoded The number of consecutive points with a specific symbol (such as 0) in the residual of the attribute information of the point is recorded as run-length.
  • the run-length value increases by 1, every time When the value of run-length reaches 1024, the computer device encodes the residual of the value of run-length and the attribute information of the current encoding point, sets run-length to an initial value (such as 0), and counts run-length again. If the residual of the attribute information of the current point to be encoded is a non-specific symbol (such as non-0), the computer device encodes the current run-length value and the residual of the attribute information of the current point to be encoded, and sets the run-length to Initial value (such as 0), and count run-length again.
  • S405 Encode the attribute information of the to-be-encoded point, and control the encoding logic in the encoding process according to the cache limit parameter and the delay limit parameter.
  • the encoding process of attribute information of the points to be encoded is controllable, which can avoid long waiting time for point cloud encoding, thereby improving the encoding performance of point cloud attribute information.
  • the cache limit parameter and the delay limit parameter are independent of each other. Taking the intermediate coefficient of the attribute information of the point to be encoded as the transformation coefficient as an example, the computer device first controls the caching logic in the encoding process according to the caching restriction parameter; for a specific implementation, please refer to the implementation in step S403.
  • the computer device can arrange the intermediate coefficients of the point cloud group and write the arrangement into the encoding code stream; or, directly Specifies the arrangement to the decoding device.
  • the computing device clears the cache and repeats the above steps until the intermediate coefficients of all point cloud groupings are encoded.
  • the computer device determines the run length during run-length encoding according to the delay limit parameter, and controls the encoding logic in the encoding process based on the run length; for a specific implementation, please refer to the implementation in step S404.
  • each point cloud group to be encoded in the computer device statistics cache is The number of points to be encoded included is determined based on the cache limit parameter and the number of points to be encoded in each point cloud group to be encoded in the cache; where M is a positive integer, and M groups of point cloud groups to be encoded contain The total number of points to be encoded is less than or equal to 1024, and the total number of points to be encoded included in the M+1 point cloud grouping to be encoded is greater than 1024.
  • the computer equipment arranges the transformation coefficients in the M groups of point cloud groups to be encoded one by one (such as a fixed arrangement, a random arrangement, a specified arrangement). After obtaining the M sets of transformation coefficients in the point cloud groups to be encoded, the computer device clears the current cache and restarts caching the transformation coefficients of the groups to be encoded until all the transformation coefficients in the point cloud groups are encoded.
  • the transformation coefficient of each point cloud group includes a first transformation coefficient DC and at least one second transformation coefficient ⁇ AC ⁇ . The arrangement of the transformation coefficients is limited by the computer device (encoding device).
  • the transformation coefficients within the even number of cache parameter points or to say that the number of groups of point clouds in the cache is an even number, press [DC1,..., DCM, ⁇ AC1 ⁇ ,..., ⁇ ACM ⁇ ] arrangement; for odd-numbered caches, the transformation coefficients within parameter points are limited, or the number of groups of point cloud groups in the cache is the technology, according to [ ⁇ AC1 ⁇ ,.. ., ⁇ ACM ⁇ ,DC1,...,DCM] arrangement.
  • the computer device may use run-run coding to encode the residuals of the attribute information of the points to be encoded, and count the number of consecutive points with specific symbols in the residuals of the attribute information of the points to be encoded and record it as the run-length.
  • the run-length value is increased by 1. Whenever the run-length reaches the delay limit points indicated by the delay limit parameter, the value of run-length is encoded. and the residual of the attribute information of the current point to be encoded, set the run-length to 0, and restart counting. If the residual sign of the attribute information of the current point to be encoded is a non-specific value (such as non-0), the computer device first encodes the run-length value, and then encodes the residual of the attribute information of the current point to be encoded, and Set run-length to 0 and restart counting.
  • the cache limit parameter and the delay limit parameter are related to each other; that is, the cache limit parameter is determined based on the delay limit parameter, or the delay limit parameter is determined based on the cache limit parameter.
  • the computer device determines the cache limit parameter and the delay limit parameter based on the correlation, it controls the cache logic in the encoding process according to the cache limit parameter; specific implementation manner Reference may be made to the implementation in step S403.
  • the computer device can arrange the intermediate coefficients of the point cloud group and write the arrangement into the encoding code stream; or, directly Specifies the arrangement to the decoding device.
  • the computing device clears the cache and repeats the above steps until the intermediate coefficients of all point cloud groupings are encoded.
  • the computer device determines the run length during run-length encoding according to the delay limit parameter, and controls the encoding logic in the encoding process based on the run length; for a specific implementation, please refer to the implementation in step S404.
  • the delay limit parameter is in multiples and has a value of 2; the cache limit parameter is in groups and has a value of 64, then the number of cache limit points determined based on the cache limit parameter is 64 points to be encoded in the point cloud grouping
  • the cache limit parameter is in the number of groups and has a value of 64
  • the second transformation coefficients of the first group of point cloud groups among the 64 groups of point clouds are k
  • the delay limit parameter is in the unit of points and has a value of is 64+k to ensure real-time decoding of the first set of point cloud packets. If encoding is performed in units of groups; the computer equipment counts the number of points to be encoded contained in the 64 point cloud groups, and arranges the transformation coefficients in the 64 point cloud groups to be encoded one by one (such as fixed arrangement, random arrangement, Specify the arrangement).
  • the computer device After obtaining 64 sets of transformation coefficients in the point cloud groups to be encoded, the computer device clears the current cache and restarts caching the transformation coefficients of the groups to be encoded until all the transformation coefficients in the point cloud groups are encoded.
  • the transformation coefficient of each point cloud group includes a first transformation coefficient DC and at least one second transformation coefficient ⁇ AC ⁇ . The arrangement of the transformation coefficients is limited by the computer device (encoding device).
  • the transformation coefficients within the even number of cache parameter points or to say that the number of groups of point clouds in the cache is an even number, press [DC1,..., DCM, ⁇ AC1 ⁇ ,..., ⁇ ACM ⁇ ] arrangement; for odd-numbered caches, the transformation coefficients within parameter points are limited, or the number of groups of point cloud groups in the cache is the technology, according to [ ⁇ AC1 ⁇ ,.. ., ⁇ ACM ⁇ ,DC1,...,DCM] arrangement.
  • the computer device may use run-run coding to encode the residuals of the attribute information of the points to be encoded, and count the number of consecutive points with specific symbols in the residuals of the attribute information of the points to be encoded and record it as the run-length.
  • the run-length value is increased by 1. Whenever the run-length reaches the delay threshold indicated by the delay limit parameter, the value of the encoded run-length and The residual of the attribute information of the current point to be encoded, set the run-length to 0, and restart counting. If the residual sign of the attribute information of the current point to be encoded is a non-specific value (such as non-0), the computer device first encodes the run-length value, and then encodes the residual of the attribute information of the current point to be encoded, and Set run-length to 0 and restart counting.
  • the embodiment of the present application controls the encoding process of point cloud attribute information through one or more of the cache limit parameters and delay limit parameters; on the other hand, it supports multiple points to be encoded. , or the attribute information of multiple point cloud groups to be encoded is arranged according to a preset arrangement, which improves the encoding performance of point cloud attribute information.
  • Figure 5 is another point cloud processing method provided by an embodiment of the present application.
  • the point cloud processing method can be executed by a computer device.
  • the computer device can be the point cloud processing system 20 shown in Figure 2.
  • decoding device 202 As shown in Figure 5, the point cloud processing method may include the following steps S501 to S503:
  • the coded stream of the point to be decoded is obtained by encoding the point to be coded by the encoding device.
  • the encoding code stream of the point to be decoded in the point cloud may be obtained by the computer device from the encoding device in real time, or may be obtained by the computer device from a downloaded encoding code stream.
  • the limit parameters include one or both of cache limit parameters and delay limit parameters.
  • the restriction parameters for the computer device to obtain the point cloud include any one or more of the following: parsing the restriction parameters that have been set to fixed values from the encoding code stream, and parsing the restrictions that have been set to variable values from the encoding code stream. Parameters, parse the set dynamically adjusted restriction parameters from the encoding stream. It can be understood that if the restriction parameters of the point cloud are not parsed in the encoding code stream, the computer device determines that the restriction parameters of the point cloud are default values. Through various setting methods to limit the restriction parameters, the decoding delay can be flexibly controlled according to actual needs, thereby ensuring the decoding performance of point cloud attribute information in various scenarios.
  • the unit of the limiting parameter includes any of the following: points as the unit, group number as the unit.
  • Limiting in units of points means limiting the number of points to be decoded when decoding in units of points;
  • limiting in units of groups means limiting the number of groups to be decoded when decoding in units of groups. Number of groups.
  • the limit parameter is a cache limit parameter
  • the decoding limit point threshold is the cache limit point threshold;
  • the unit of the cache limit parameter can be points or groups.
  • the limit parameter is a delay limit parameter
  • the decoding limit point threshold is the delay limit point threshold; the unit of the delay limit parameter can be the number of points or the number of groups.
  • the unit of the limiting parameter when the limiting parameter includes two kinds of parameters, includes any one or more of the following: in points, in groups, and in multiples; where, the limiting parameter
  • the unit of parameter 1 is a multiple: when the limit parameter 2 limits the number of points to be decoded in units of points, the limit parameter 1 limits the number of points to be decoded in units of points, and the limit parameter 1 limits the number of points to be decoded.
  • the number of points is a multiple of limit parameter 2 limiting the number of points to be decoded.
  • the restriction parameter 1 limits the number of packets to be decoded in the unit of the number of groups
  • the restriction parameter 1 limits the number of packets to be decoded
  • the restriction parameter 2 limits the number of packets to be decoded. A multiple of the number of groups.
  • the combination methods include: Limit Parameter 1 and Limit Parameter 2 are both in points, or in groups; Limit Parameter 1 is in points, Limit Parameter 2 is in groups, or Limit Parameter 2 The unit is multiples; limit parameter 1 is in the number of groups, limit parameter 2 is in points, or limit parameter 2 is in multiples.
  • the above-mentioned restriction parameter 1 may be any one of the cache restriction parameter and the delay restriction parameter
  • the above-mentioned restriction parameter 2 may be the other one of the cache restriction parameter and the delay restriction parameter.
  • the decoding method includes run-length decoding. If the encoding device encodes in points, the computer device decodes in points; if the encoding device encodes in groups, the computer device decodes in groups.
  • the limit parameters may include at least one of a cache limit parameter and a delay limit parameter.
  • the computer device controls the decoding process according to the restriction parameters by: determining the restriction point threshold according to the restriction parameter, and the restriction point threshold is used to limit the number threshold of points to be decoded; for example, if the restriction parameter is a cache limit parameter, the computer device determines the threshold of the number of points to be decoded that is allowed to be cached in the cache according to the cache limit parameter; if the limit parameter is the delay limit parameter, the computer device determines the threshold of the number of points to be decoded that is allowed to be delayed during the decoding process according to the delay limit parameter. .
  • the count value of the first stroke length is set to a preset value (such as the limit point threshold); if the count value of the first stroke length is greater than zero and not is equal to the limit point threshold, then the intermediate coefficient of the current point to be decoded is set to a specific value (such as 0), and the count value of the first run length is reduced by one step until the count value of the first run length is equal to zero; computer equipment Obtain the intermediate coefficient of the point to be decoded that is read when the count value of the first run length is equal to zero and decode it.
  • the first run length is used to control the decoding according to the limited point threshold, which can ensure the encoding and decoding performance of the point cloud attribute information.
  • the computer device controls the decoding process according to the restriction parameters by: determining the restriction point threshold according to the restriction parameter, and the restriction point threshold is used to limit the number threshold of points to be decoded.
  • the count value of the first run length is read from the encoded code stream; if the count value of the first run length is greater than zero and equal to the limit point threshold, the computer device sets the intermediate coefficient of the current point to be decoded is a specific value, and decreases the count value of the first run length by one step until the count value of the first run length equals zero; reads the count value of the second run length from the encoded code stream, if the count value of the second run length If the count value is greater than zero and not equal to the limit point threshold, the intermediate coefficient of the current point to be decoded is set to the preset value, and the count value of the second run length is reduced by one step until the count value of the second run length is equal to zero.
  • the computer device sets the intermediate coefficient of the current point to be decoded to a specific value. , and reduce the count value of the second run length by one step until the count value of the second run length is equal to zero; read the count value of the third run length from the encoded code stream, and continue to judge.
  • the computer device will continue to read the count value of the next stroke length; if the read If the count value of the obtained stroke length is greater than zero and not equal to the limit point threshold, then when the count value of the stroke length is 0, the computer device will obtain the points to be decoded that are read when the count value of the stroke length is equal to zero. intermediate coefficients and decoded.
  • the first run length and the second run length are used to control the decoding according to the limited point threshold, which can ensure the encoding and decoding performance of the point cloud attribute information.
  • the computer device reads the count value of the first run length from the encoded code stream; if the count value of the first run length is greater than zero, the computer device reads the count value of the current point to be decoded.
  • the intermediate coefficient is set to a specific value and the count value of the first run length is reduced by one step until the count value of the first run length is equal to zero; the point to be decoded that is read when the count value of the first run length is equal to zero is obtained intermediate coefficients and decoded. It should be noted that in this implementation, the intermediate coefficient of the point to be decoded read when the count value of the first run length is equal to zero may be a specific value.
  • the value is a specific value.
  • Intermediate coefficients can be accumulated over multiple stroke lengths. In this embodiment, during the run-length decoding process, the intermediate coefficients read when the count value is 0 are decoded, which can ensure the encoding and decoding performance of the point cloud attribute information.
  • the decoding process is similar to the above-mentioned implementation methods one to three.
  • the limiting parameter is a cache limiting parameter
  • the computer device caches the intermediate parameters of the read point cloud groups, it can also cache the intermediate coefficients of each point cloud group in the cache according to the obtained arrangement.
  • the decoding method is a point-based decoding method, that is, one point in the point cloud is used as a basic decoding unit for decoding.
  • the specific implementation method of the computer device decoding the code stream of the to-be-decoded point is: parsing the code stream of the to-be-decoded point to obtain the intermediate coefficients of the to-be-decoded point.
  • the intermediate coefficients include residuals or transformation coefficients.
  • the computer device decodes the to-be-decoded point. The intermediate coefficients of are written into the cache, and the intermediate coefficients of the points to be decoded are read from the cache for decoding.
  • the computer device can control the decoding process based on the restriction parameter; for example, the computer device can control the decoding process based on the delay restriction parameter; for another example, the computer device can control the decoding process based on the cache restriction parameter; for example , the computer device can control the decoding process based on the cache limit parameter and the delay limit parameter.
  • the attribute information of the point to be decoded is converted in units of points, the obtained intermediate coefficients are written into the cache, and the intermediate coefficients are read from the cache for decoding.
  • the point cloud decoding process can be delayed. Control can avoid long waiting time for point cloud decoding and help improve the encoding and decoding performance of point cloud attribute information.
  • the decoding method is a decoding method based on the number of groups, that is, one group in the point cloud is used as a basic decoding unit to decode.
  • the specific implementation method of computer equipment decoding the code stream of the to-be-decoded point is: parsing the code stream of the to-be-decoded point to obtain multiple groups of point cloud groups.
  • Each group of point cloud groups contains intermediate coefficients of the point to be decoded.
  • the intermediate coefficients Including residuals or transformation coefficients, the computer device writes the point cloud group into the cache, and sequentially reads the intermediate coefficients of the points to be decoded in the point cloud group from the cache for decoding.
  • the computer device can control the decoding process based on the restriction parameter; for example, the computer device can control the decoding process based on the delay restriction parameter; for another example, the computer device can control the decoding process based on the cache restriction parameter; for example , the computer device can control the decoding process based on the cache limit parameter and the delay limit parameter.
  • the attribute information of the points to be decoded is converted in units of groups, the obtained intermediate coefficients are written into the cache, and the intermediate coefficients are read from the cache for decoding.
  • the point cloud decoding process can be carried out. Delay control can avoid long waiting time for point cloud decoding, which is helpful to improve the encoding and decoding performance of point cloud attribute information.
  • the encoding stream of the point to be decoded in the point cloud and the restriction parameters of the point cloud can be obtained, and the encoding stream of the point to be decoded can be decoded. And control the decoding process according to restricted parameters.
  • the embodiment of the present application obtains the restriction parameters of the point cloud, making the decoding process of the attribute information of the point to be decoded controllable, thereby improving the decoding performance of the point cloud attribute information.
  • Figure 6 is another point cloud processing method provided by an embodiment of the present application.
  • the point cloud processing method can be executed by a computer device.
  • the computer device can be the point cloud processing system 20 shown in Figure 2.
  • decoding device 202 As shown in Figure 5, the point cloud processing method may include the following steps S601 to S605:
  • step S601 and step S602 For the specific implementation of step S601 and step S602, reference may be made to the implementation of step S501 and step S502 in FIG. 5 .
  • restriction parameter is a cache restriction parameter
  • restriction parameter is a delay restriction parameter
  • the restriction parameter includes a cache restriction parameter and a delay restriction parameter, continue to execute step S605.
  • the cache limit parameter is used to control the number of points to be decoded that are allowed to be written in the cache, so that the decoding process of attribute information of the points to be decoded is controllable, which can avoid long waiting times for point cloud decoding, thereby improving the decoding performance of point cloud attribute information.
  • the cache limit parameter is used to limit the number of points to be decoded that are allowed to be written in the cache, and each point to be decoded may include one or more intermediate coefficients.
  • the computer device determines the cache limit point threshold according to the cache limit parameter. Whenever the number of points to be decoded written in the cache reaches the cache limit point threshold, the computer device reads the intermediate coefficients of the points to be decoded from the cache for decoding.
  • the cache limit point threshold determined by the cache limit parameter is used to control the number of points to be decoded that are allowed to be written in the cache. It is triggered when the number of points to be decoded that is allowed to be written in the cache reaches the cache limit point threshold. Decoding can avoid long waiting time for point cloud decoding, thereby improving the decoding performance of point cloud attribute information.
  • the decoding method is a decoding method based on the number of groups, that is, a group in the point cloud is used as a basic decoding unit to decode.
  • the computer device counts the total number of points to be decoded contained in each group of point cloud groups in the cache. When the number of groups stored in the cache is M, and the total number of points to be decoded contained in these M groups of point cloud groups reaches the cache limit point threshold. At this time, the computer device reads the intermediate coefficients of the points to be decoded contained in the M sets of point cloud groups from the cache for decoding. Further, the computer device clears the cache and continues to write the intermediate coefficients of the points to be decoded into the cache.
  • the total number of points to be decoded in all point cloud groups is controlled through the cache limit point threshold, so as to control the delay in the decoding process of the attribute information of the points to be decoded, which is beneficial to improving the points. Decoding performance of cloud attribute information.
  • the decoding method is a decoding method based on group number, that is, one group in the point cloud is used as a basic decoding unit to decode.
  • the computer equipment counts the total number of target points to be decoded contained in each point cloud grouping in the cache.
  • the number of target points to be decoded in each point cloud group is less than or equal to the point limit threshold for each point cloud grouping. If the cache includes M A group of point cloud groups, and the total number of target points to be decoded included in the M group of point cloud groups reaches the cache limit point threshold, then the intermediate coefficients of the to-be-decoded points included in the M group of point cloud groups are controlled to be read from the cache for decoding.
  • the computer device clears the cache and continues to write the intermediate coefficients of the points to be decoded into the cache.
  • the number of points to be decoded in each point cloud group is controlled by the point limit threshold, and the total number of points to be decoded in all point cloud groups is controlled by the cache limit threshold.
  • Delay control in the decoding process of attribute information of points to be decoded is beneficial to improving the decoding performance of point cloud attribute information.
  • the decoding method is a decoding method based on the number of groups, that is, decoding a group in the point cloud (a group may include at least one point in the point cloud) as a basic decoding unit.
  • the computer device controls to read the intermediate coefficients of the points to be decoded contained in M sets of point cloud groups from the cache for decoding. Further, the computer device clears the cache and continues to write the intermediate coefficients of the points to be decoded into the cache.
  • the number of point cloud groups allowed to be written in the cache is delayed through the group number threshold, which is beneficial to improving the decoding performance of point cloud attribute information.
  • the computer device may also obtain a preset arrangement of point cloud packets in the cache.
  • the preset arrangement method includes any of the following: fixed arrangement method and dynamic arrangement method;
  • the fixed arrangement method refers to the intermediate coefficient arrangement method of each cached point cloud grouping (such as according to similarity, according to the to-be-coded content included in the grouping). The number of points, etc.) is the same.
  • the dynamic arrangement means that the arrangement of the intermediate coefficients of the cached point cloud grouping changes; for example, the arrangement of the intermediate coefficients of the first cached point cloud grouping is different from the arrangement of the intermediate coefficients of the second cached point cloud grouping.
  • the intermediate coefficients are arranged in the same way, and the intermediate coefficients of the third cached point cloud grouping are arranged in a different way.
  • the point cloud groups written in the cache are arranged in either a fixed arrangement or a dynamic arrangement, which can ensure the orderly decoding of the point cloud and help improve the decoding of the decoded code stream. processing efficiency.
  • the specific implementation method for the computer device to obtain the preset arrangement of the point cloud groups in the cache is: each arrangement corresponds to an index value, the computer device can parse the index value from the encoding code stream, and determine the point cloud grouping based on the index value arrangement.
  • step S604 For the specific implementation of step S604, reference may be made to the implementation of step S503 in FIG. 5 .
  • Delay control of the number of points to be decoded through the delay limit parameter makes the decoding process of attribute information of the points to be decoded controllable, which can avoid long waiting time for point cloud decoding, thereby improving the decoding performance of point cloud attribute information.
  • S605 Decode the attribute information of the to-be-decoded point, and control the decoding logic in the decoding process according to the cache limit parameter and the delay limit parameter.
  • the decoding process of attribute information of the points to be decoded is controllable, which can avoid long waiting time for point cloud decoding, thereby improving the decoding performance of point cloud attribute information.
  • the cache limit parameter and the delay limit parameter are independent of each other.
  • the computer device first reads the intermediate parameters of the point to be decoded or the intermediate parameters of the point cloud group into the cache according to the delay limit parameter; for a specific implementation, please refer to the implementation in step S604. If the encoding device encodes in units of groups, after caching the intermediate parameters of the read point cloud groups, the computer device can also arrange the intermediate coefficients of each point cloud group in the cache according to the obtained arrangement. Then the computer device can control the decoding logic in the decoding process according to the delay limit parameter; for specific implementation, please refer to the implementation in step S503.
  • the cache limit parameter and the delay limit parameter are related to each other; that is, the cache limit parameter is determined based on the delay limit parameter, or the delay limit parameter is determined based on the cache limit parameter.
  • the computer device first reads the intermediate parameters of the point to be decoded or the intermediate parameters of the point cloud group into the cache according to the delay limit parameter; for a specific implementation, please refer to the implementation in step S604. If the encoding device encodes in units of groups, after caching the intermediate parameters of the read point cloud groups, the computer device can also arrange the intermediate coefficients of each point cloud group in the cache according to the obtained arrangement. Then the computer device can control the decoding logic in the decoding process according to the delay limit parameter; for specific implementation, please refer to the implementation in step S503.
  • the embodiment of the present application controls the decoding process of point cloud attribute information through one or more of the cache restriction parameters and delay restriction parameters; on the other hand, it supports multiple points to be decoded. , or the attribute information of multiple point cloud groups to be decoded is arranged according to the arrangement indicated by the encoding stream, which improves the decoding performance of point cloud attribute information.
  • Figure 7 is a schematic structural diagram of a point cloud processing device provided by an embodiment of the present application; the point cloud processing device can be a computer readable instruction (including program code) running in a coding device, such as the The point cloud processing device may be an application software in the encoding device.
  • the point cloud processing device includes a setting unit 701, an acquisition unit 702 and a processing unit 703. Please refer to Figure 7. The detailed description of each unit is as follows:
  • the setting unit 701 is used to set the limit parameters of the point cloud.
  • the limit parameters include one or both of cache limit parameters and delay limit parameters;
  • Obtaining unit 702 is used to obtain attribute information of points to be encoded in the point cloud.
  • the processing unit 703 is used to encode the attribute information of the to-be-encoded point; and to control the encoding process according to the restriction parameters.
  • the coding method of encoding includes a coding method in units of points; the processing unit 703 is used to encode the attribute information of the to-be-coded point, and is specifically used to: convert the attribute information of the to-be-coded point to obtain The intermediate coefficients of the points to be encoded; the intermediate coefficients include residuals or transformation coefficients; the intermediate coefficients of the points to be encoded are written into the cache; and the intermediate coefficients of the points to be encoded are read from the cache for encoding.
  • the encoding method includes the encoding method based on the number of groups; the processing unit 703 is used to encode the attribute information of the to-be-coded points, and is specifically used to: group the attribute information of the to-be-coded points, Obtain multiple groups of point cloud groups; perform conversion processing on the attribute information of the points to be encoded in the point cloud groups to obtain converted point cloud groups.
  • the converted point cloud groups contain intermediate coefficients of the points to be encoded; the intermediate coefficients include residual difference or transformation coefficient; writing the converted point cloud group into the cache; and sequentially reading the intermediate coefficients of the points to be encoded in the converted point cloud group from the cache for encoding.
  • the restriction parameters include cache restriction parameters; the processing unit 703 is configured to control the encoding process according to the restriction parameters, and is specifically configured to: control the caching logic in the encoding process according to the cache restriction parameters.
  • the processing unit 703 is configured to control the caching logic in the encoding process according to the caching restriction parameters, and is specifically configured to: determine a cache restriction point threshold according to the cache restriction parameters, and the cache restriction point threshold is used to limit the cache. A threshold value for the number of points to be encoded that is allowed to be written; and whenever the number of points to be encoded written in the cache reaches the cache limit point threshold, control to read the intermediate coefficients of the points to be encoded from the cache for encoding.
  • the encoding method includes the encoding method based on the number of groups; the processing unit 703 is configured to, whenever the number of points to be encoded written in the cache reaches the cache limit point threshold, control the number of points to be encoded from the cache. Read the intermediate coefficients of the points to be encoded for encoding, specifically for: counting the total number of points to be encoded contained in each point cloud grouping in the cache.
  • the cache includes M groups of point cloud groups, and the M groups of point cloud groups contain The total number of points to be coded reaches the cache limit point threshold, then control to read the intermediate coefficients of the points to be coded contained in M groups of point cloud groups from the cache for encoding; or, count the number M of point cloud groups contained in the cache, based on M and the point limit threshold of the point cloud grouping calculate the total number of points to be encoded contained in the cache. If the total number of points to be encoded contained in the cache reaches the cache limit point threshold, control the reading of the M group of point cloud groups from the cache. The intermediate coefficients contained in the points to be encoded are encoded.
  • the encoding method includes the encoding method based on the number of groups; the processing unit 703 is configured to control the caching logic in the encoding process according to the cache restriction parameters, and is specifically used to: determine according to the cache restriction parameters.
  • the group number threshold of the point cloud groups that are allowed to be written in the cache; and whenever the number of point cloud groups written in the cache reaches the group number threshold, it is controlled to read from the cache the data contained in the point cloud groups written in the cache.
  • the intermediate coefficients of the coding points are encoded.
  • the processing unit 703 is also configured to arrange the point cloud groups written in the cache according to a preset arrangement;
  • the preset arrangement includes any of the following: fixed arrangement, dynamic arrangement; fixed The arrangement means that the arrangement of the intermediate coefficients of the point cloud groups in the cache is fixed, and the dynamic arrangement means that the arrangement of the intermediate coefficients of the point cloud groups in the cache changes.
  • each arrangement corresponds to an index value; the processing unit 703 is also configured to write the index value corresponding to the intermediate coefficient arrangement of the point cloud group in the cache into the encoded code stream formed by encoding.
  • the encoding includes run-length encoding;
  • the processing unit 703 is configured to control the caching logic in the encoding process according to the caching restriction parameters, and is specifically configured to: determine the points to be encoded that are allowed to be written in the cache according to the caching restriction parameters.
  • the cache limit point threshold is used to limit the number of points to be encoded that are allowed to be written into the cache during the encoding process; during the run length encoding process, set the run length used to count consecutive specific symbols; and set the run length The length is set to the initial value.
  • the count value of the run length is increased by one step; if the read If the number of points to be encoded is equal to the cache limit point threshold, the current run length is encoded, or the buffer limit point threshold and the intermediate coefficient of the to-be-encoded points with a value of a specific symbol are encoded, and the run length is set to the initial value to re-encode. Counting; if the value is read as the intermediate coefficient of the point to be encoded with a non-specific symbol, the current run length and the intermediate coefficient of the non-specific symbol are encoded, and the run length is reset to the initial value to re-count.
  • the restriction parameters include delay restriction parameters; the processing unit 703 is configured to control the encoding process according to the restriction parameters, specifically: control the delay logic in the encoding process according to the delay restriction parameters.
  • the encoding includes run-length encoding;
  • the processing unit 703 is configured to control the delay logic in the encoding process according to the delay limit parameter, and is specifically configured to: determine the delay limit point threshold according to the delay limit parameter, and the delay limit point threshold A threshold used to limit the number of points to be encoded that allows delay during the encoding process; during the run-length encoding process, set the run length used to count consecutive specific symbols; and set the run length to the initial value, in order from the cache
  • the processing unit 703 is configured to control the delay logic in the encoding process according to the delay limit parameter, and is specifically configured to: determine the delay limit point threshold according to the delay limit parameter, and the delay limit point threshold A threshold used to limit the number of points to be encoded that allows delay during the encoding process; during the run-length encoding process, set the run length used to count consecutive specific symbols; and set the run length to the initial value, in order from the cache
  • the processing unit 703 is configured to control the delay logic in the encoding process
  • the encoding includes run-length encoding;
  • the processing unit 703 is configured to control the delay logic in the encoding process according to the delay limit parameter, and is specifically configured to: determine the delay limit point threshold according to the delay limit parameter, and the delay limit point threshold A threshold used to limit the number of points to be encoded that allows delay during the encoding process; during the run-length encoding process, set the run length used to count consecutive specific symbols; and set the run length to the initial value, in order from the cache
  • the processing unit 703 is configured to control the delay logic in the encoding process according to the delay limit parameter, and is specifically configured to: determine the delay limit point threshold according to the delay limit parameter, and the delay limit point threshold A threshold used to limit the number of points to be encoded that allows delay during the encoding process; during the run-length encoding process, set the run length used to count consecutive specific symbols; and set the run length to the initial value, in order from the cache
  • the processing unit 703 is configured to control the delay logic in the encoding process
  • the delay limit parameter is used to determine the delay limit point threshold; the encoding includes run-length encoding, and the run length in the run-length encoding is less than or equal to the delay limit point threshold; the processing unit 703 is also used to: set according to the delay limit point threshold The number of bits for the run length.
  • the restriction parameters include cache restriction parameters and delay restriction parameters; the processing unit 703 is configured to control the encoding process according to the restriction parameters, and is specifically configured to: control the encoding process in accordance with the cache restriction parameters and delay restriction parameters. Coding logic controls.
  • the setting method of the restriction parameters includes any one or more of the following: setting the restriction parameters to a default value; setting the restriction parameters to a fixed value, and encapsulating the set restriction parameters into the encoding formed by the encoding in the code stream; set the restriction parameters to variable values, and encapsulate the set restriction parameters into the encoding code stream formed by encoding; dynamically adjust the values of the restriction parameters during the encoding process, and encapsulate the dynamically adjusted restriction parameters into the encoded code stream formed by encoding.
  • the unit of the limiting parameter when the limiting parameter includes only one kind of parameter, includes any of the following: in points, in the number of groups; when the limiting parameter includes two kinds of parameters, the unit of the limiting parameter includes: The unit includes any one or more of the following: points as the unit, group number as the unit and multiple relationship as the unit.
  • the limit parameter is used to determine the encoding limit point threshold; if the limit parameter is a cache limit parameter, the encoding limit point threshold is the cache limit point threshold; if the limit parameter is a delay limit parameter, the encoding limit point threshold is Delay limit point threshold; if the limit parameter is in points, and the value of the limit parameter is X1, then the encoding limit point threshold is the actual total number of intermediate coefficients of X1 points to be encoded; if the limit parameter is in groups, and The value of the restriction parameter is X2, then the encoding restriction point threshold is the actual total number of intermediate coefficients of points to be encoded in the The number of points in a point cloud grouping is limited to
  • the limit parameters include two parameters: a cache limit parameter and a delay limit parameter; the cache limit parameter is used to determine the cache limit point threshold; the delay limit parameter is used to determine the delay limit point threshold; if the cache limit parameter is in a multiple relationship is the unit, and the value of the cache limit parameter is Y1, then the cache limit point threshold is Y1 times the delay limit point threshold; if the delay limit parameter is in a multiple relationship, and the value of the delay limit parameter is Y2, then the delay limit point threshold is It is Y2 times the cache limit point threshold.
  • step S301 shown in FIG. 3 can be performed by the setting unit 701 shown in FIG. 7
  • step S302 can be performed by the obtaining unit 702 shown in FIG. 7
  • step S303 can be performed by the processing unit 703 shown in FIG. 7
  • step S401 shown in FIG. 4 can be performed by the setting unit 701 shown in FIG. 7
  • step S402 can be performed by the obtaining unit 702 shown in FIG. 7
  • steps S403 to S405 can be performed by the processing unit 703 shown in FIG. 7 .
  • Each unit in the point cloud processing device shown in Figure 7 can be separately or entirely combined into one or several additional units, or some of the units can be further divided into functionally smaller units. It is composed of units, which can achieve the same operation without affecting the realization of the technical effects of the embodiments of the present application.
  • the above units are divided based on logical functions. In practical applications, the function of one unit can also be realized by multiple units, or the functions of multiple units can be realized by one unit. In other embodiments of the present application, the point cloud processing device may also include other units. In practical applications, these functions may also be implemented with the assistance of other units, and may be implemented by multiple units in cooperation.
  • a general computing device such as a computer including a central processing unit (CPU), a random access storage medium (RAM), a read-only storage medium (ROM), and other processing elements and storage elements can be used.
  • Run computer readable instructions capable of executing the steps involved in the corresponding methods shown in Figures 3 and 4 to construct the point cloud processing device shown in Figure 7, and to implement the present application Point cloud processing method of embodiment.
  • Computer-readable instructions may be recorded on, for example, a computer-readable recording medium, loaded into the above-mentioned computing device through the computer-readable recording medium, and run therein.
  • the principles and beneficial effects of the point cloud processing device provided in the embodiments of the present application for solving problems are similar to the principles and beneficial effects of the point cloud processing method for solving the problems in the method embodiments of the present application. Please refer to the principle of implementation of the method. and beneficial effects are briefly described and will not be repeated here.
  • FIG. 8 is a schematic structural diagram of another point cloud processing device provided by an embodiment of the present application; the point cloud processing device can be a computer readable instruction (including program code) running in the decoding device, for example
  • the point cloud processing device may be an application software in the decoding device.
  • the point cloud processing device includes an acquisition unit 801 and a processing unit 802 . Please refer to Figure 8. The detailed description of each unit is as follows:
  • the acquisition unit 801 is used to acquire the encoding code stream of the point to be decoded in the point cloud, and acquire the restriction parameters of the point cloud.
  • the restriction parameters include one or both of cache restriction parameters and delay restriction parameters;
  • the processing unit 802 is used to decode the coded code stream at the to-be-decoded point; and to control the decoding process according to the restriction parameters.
  • the acquisition unit 801 obtains the restriction parameters of the point cloud, including any one or more of the following: setting the restriction parameters to default values; parsing the restriction parameters that have been set to fixed values from the encoding code stream; The restriction parameters that have been set to variable values are parsed from the encoding code stream; the dynamically adjusted restriction parameters that have been set are parsed from the encoding code stream.
  • the decoding method of decoding includes a decoding method in units of points; the processing unit 802 is used to decode the coded code stream of the to-be-decoded point, and is specifically used to: parse the coded code stream of the to-be-decoded point, Obtain the intermediate coefficients of the points to be decoded; the intermediate coefficients include residuals or transform coefficients; write the intermediate coefficients of the points to be decoded into the cache; read the intermediate coefficients of the points to be decoded from the cache for decoding.
  • the decoding method of decoding includes a decoding method based on the number of groups; the processing unit 802 is used to decode the coded stream of the to-be-decoded point, and is specifically used to: parse the coded stream of the to-be-decoded point. , obtain multiple groups of point cloud groups.
  • the point cloud groups contain intermediate coefficients of the points to be decoded; the intermediate coefficients include residuals or transformation coefficients; write the point cloud groups into the cache; and read the point cloud groups sequentially from the cache.
  • the intermediate coefficient of the point to be decoded is decoded.
  • decoding includes run-length decoding; the processing unit 802 is configured to control the decoding process according to the restriction parameters, specifically: determining a restriction point threshold according to the restriction parameter, and the restriction point threshold is used to limit the number of points to be decoded. Threshold; during the process of stroke decoding, if the limit flag bit is read, the count value of the first stroke length is set to the preset value; if the count value of the first stroke length is greater than zero and not equal to the limit point threshold, then Set the intermediate coefficient of the current point to be decoded to a specific value, and reduce the count value of the first run length by one step until the count value of the first run length is equal to zero; and obtain when the count value of the first run length is equal to zero. Read the intermediate coefficient of the point to be decoded and decode it.
  • decoding includes run-length decoding; the processing unit 802 is configured to control the decoding process according to the restriction parameters, specifically: determining a restriction point threshold according to the restriction parameter, and the restriction point threshold is used to limit the number of points to be decoded.
  • Threshold during the process of run decoding, read the count value of the first run length from the encoded code stream; if the count value of the first run length is greater than zero and equal to the limit point threshold, set the intermediate coefficient of the current point to be decoded is a specific value, and decreases the count value of the first run length by one step until the count value of the first run length equals zero; reads the count value of the second run length from the encoded code stream, if the count value of the second run length If the count value is greater than zero and not equal to the limit point threshold, the intermediate coefficient of the current point to be decoded is set to the preset value, and the count value of the second run length is reduced by one step until the count value of the second run length is equal to zero. ; and obtain and decode the intermediate coefficient of the point to be decoded that is read when the count value of the second run length is equal to zero.
  • decoding includes run-length decoding; the processing unit 802 is configured to control the decoding process according to the restriction parameters, and is specifically configured to: during the process of run-length decoding, read the first run-length length from the encoded code stream. Count value; if the count value of the first run length is greater than zero, set the intermediate coefficient of the current point to be decoded to a specific value, and reduce the count value of the first run length by one step until the count value of the first run length until it is equal to zero; and obtain and decode the intermediate coefficient of the point to be decoded that is read when the count value of the first run length is equal to zero.
  • the restriction parameters include cache restriction parameters; the processing unit 802 is configured to control the decoding process according to the restriction parameters, and is specifically configured to: control the caching logic in the decoding process according to the cache restriction parameters.
  • the processing unit 802 is configured to control the caching logic in the decoding process according to the cache restriction parameters, specifically: determining a cache restriction point threshold according to the cache restriction parameters, and the cache restriction point threshold is used to limit the cache.
  • the decoding method of decoding includes a decoding method based on the number of groups; the processing unit 802 is configured to control the decoding method from the cache whenever the number of points to be decoded written in the cache reaches the cache limit point threshold. Read the intermediate coefficients of the points to be decoded for decoding, specifically for: counting the total number of points to be decoded contained in each point cloud grouping in the cache.
  • the cache includes M groups of point cloud groups, and the M groups of point cloud groups contain The total number of points to be decoded reaches the cache limit point threshold, then the intermediate coefficients of the points to be decoded contained in M sets of point cloud groups are controlled to be read from the cache for decoding; or, the number M of point cloud groups contained in the cache is counted, based on M and the point limit threshold of the point cloud grouping calculate the total number of points to be encoded contained in the cache. If the total number of points to be encoded contained in the cache reaches the cache limit point threshold, control the reading of the M group of point cloud groups from the cache. The intermediate coefficients contained in the points to be decoded are decoded.
  • the decoding method of decoding includes a decoding method based on the number of groups; the processing unit 802 is used to control the caching logic in the decoding process according to the caching restriction parameters, and is specifically used to: determine according to the caching restriction parameters.
  • the group number threshold of the point cloud groups that are allowed to be written in the cache; and whenever the number of point cloud groups written in the cache reaches the group number threshold, it is controlled to read from the cache the data contained in the point cloud groups written in the cache.
  • the intermediate coefficient of the decoding point is decoded.
  • the processing unit 802 is also configured to arrange the point cloud groups written in the cache according to a preset arrangement;
  • the preset arrangement includes any of the following: fixed arrangement, dynamic arrangement; fixed The arrangement means that the arrangement of the intermediate coefficients of the point cloud groups in the cache is fixed, and the dynamic arrangement means that the arrangement of the intermediate coefficients of the point cloud groups in the cache changes.
  • each arrangement corresponds to an index value; the processing unit 802 is also configured to: parse the index value from the encoded code stream, and determine the arrangement of the point cloud groupings in the cache according to the index value.
  • the restriction parameters include delay restriction parameters; the processing unit 802 is configured to control the decoding process according to the restriction parameters, and is specifically configured to: control the delay logic in the decoding process according to the delay restriction parameters.
  • the restriction parameters include cache restriction parameters and delay restriction parameters; the processing unit 802 is configured to control the decoding process according to the restriction parameters, and is specifically configured to: control the decoding process according to the cache restriction parameters and delay restriction parameters. decoding logic for control.
  • the limit parameter includes one or both of a cache limit parameter and a delay limit parameter; when the limit parameter only includes one parameter, the unit of the limit parameter includes any one or more of the following: in points The unit is the number of groups; when the restriction parameter contains two parameters, the unit of the restriction parameter includes any one or more of the following: points, number of groups and multiples.
  • step S501 and step S502 shown in FIG. 5 may be executed by the acquisition unit 801 shown in FIG. 8
  • step S503 may be executed by the processing unit 802 shown in FIG. 8
  • steps S601 and S602 shown in FIG. 6 may be executed by the acquisition unit 801 shown in FIG. 8
  • steps S603 to S605 may be executed by the processing unit 802 shown in FIG. 8 .
  • Each unit in the point cloud processing device shown in Figure 8 can be separately or entirely combined into one or several additional units, or one (some) of the units can be further divided into functionally smaller units. It is composed of units, which can achieve the same operation without affecting the realization of the technical effects of the embodiments of the present application.
  • the above units are divided based on logical functions. In practical applications, the function of one unit can also be realized by multiple units, or the functions of multiple units can be realized by one unit. In other embodiments of the present application, the point cloud processing device may also include other units. In practical applications, these functions may also be implemented with the assistance of other units, and may be implemented by multiple units in cooperation.
  • a general computing device such as a computer including a central processing unit (CPU), a random access storage medium (RAM), a read-only storage medium (ROM), and other processing elements and storage elements can be used.
  • Run computer readable instructions capable of executing the steps involved in the corresponding methods shown in Figures 5 and 6 to construct the point cloud processing device shown in Figure 8, and to implement the present application Point cloud processing method of embodiment.
  • Computer-readable instructions may be recorded on, for example, a computer-readable recording medium, loaded into the above-mentioned computing device through the computer-readable recording medium, and run therein.
  • the principles and beneficial effects of the point cloud processing device provided in the embodiments of the present application for solving problems are similar to the principles and beneficial effects of the point cloud processing method for solving the problems in the method embodiments of the present application. Please refer to the principle of implementation of the method. and beneficial effects are briefly described and will not be repeated here.
  • Figure 9 is a schematic structural diagram of an encoding device provided by an embodiment of the present application; the encoding device may refer to a computer device used by a provider of cloud media, and the computer device may be a terminal (such as a PC, a smart mobile device (such as a smart phone) mobile phone) etc.) or server. As shown in Figure 9, the encoding device includes a capture device 901, a processor 902, a memory 903 and a transmitter 904. in:
  • the capture device 901 is used to collect real-world sound-visual scenes to obtain original data of point cloud media (including audio content and video content that are synchronized in time and space).
  • the capture device 901 may include, but is not limited to: audio devices, camera devices, and sensing devices.
  • the audio device may include an audio sensor, a microphone, etc.
  • Camera equipment can include ordinary cameras, stereo cameras, light field cameras, etc.
  • Sensing devices may include laser devices, radar devices, etc.
  • the processor 902 (or CPU (Central Processing Unit)) is the processing core of the encoding device.
  • the processor 902 is suitable for implementing one or more computer-readable instructions, and is specifically suitable for loading and executing one or more computer-readable instructions.
  • the computer-readable instructions implement the flow of the point cloud processing method shown in Figures 3 and 4.
  • Memory 903 is a memory device in the encoding device, used to store computer readable instructions and media resources. It can be understood that the memory 903 here may include a built-in storage medium in the encoding device, and of course may also include an extended storage medium supported by the encoding device. It should be noted that the memory can be a high-speed RAM memory or a non-volatile memory (non-volatile memory), such as at least one disk memory; optionally, it can also be at least one memory located far away from the aforementioned processor. The memory provides storage space for storing the operating system encoding the device. Moreover, the storage space is also used to store computer-readable instructions.
  • the computer-readable instructions include program instructions, and the program instructions are suitable to be called and executed by the processor to execute each step of the point cloud processing method.
  • the memory 903 can also be used to store point cloud media files formed after processing by the processor.
  • the point cloud media files include media file resources and media presentation description information.
  • the transmitter 904 is used to realize the transmission interaction between the encoding device and other devices, and is specifically used to realize the transmission of point cloud media between the encoding device and the content playback device. That is, the encoding device transmits the relevant media resources of the point cloud media to the content playback device through the transmitter 904.
  • the processor 902 may include a converter 921, an encoder 922 and a wrapper 923; where:
  • the converter 921 is used to perform a series of conversion processes on the captured video content, so that the video content becomes content suitable for video encoding of point cloud media.
  • the conversion process may include: stitching and projection, and optionally, the conversion process may also include area encapsulation.
  • the converter 921 can convert the captured 3D video content into a 2D image and provide it to the encoder for video encoding.
  • the encoder 922 is used to perform audio encoding on the captured audio content to form an audio code stream of the point cloud media. It is also used to perform video encoding on the 2D image converted by the converter 921 to obtain a video code stream.
  • the encapsulator 923 is used to encapsulate the audio code stream and the video code stream in a file container according to the file format of the point cloud media (such as ISOBMFF) to form a media file resource of the point cloud media.
  • the media file resource may be a media file or a media segment.
  • the encapsulated file of point cloud media processed by the encapsulator will be saved in the memory and provided to the content playback device on demand for point cloud media presentation.
  • the processor 902 (specifically, each device included in the processor) executes each step of the point cloud processing method shown in Figures 3 and 4 by calling one or more instructions in the memory.
  • the memory 903 stores one or more first instructions, which are suitable for the processor 902 to load and execute the point cloud processing method described in the above embodiments.
  • FIG. 10 is a schematic structural diagram of a decoding device provided by an embodiment of the present application; the decoding device may refer to a computer device used by users of point cloud media, and the computer device may be a terminal (such as a PC, a smart mobile device (such as a smart phone) Mobile phones), VR equipment (such as VR helmets, VR glasses, etc.)).
  • the decoding device includes a receiver 1001, a processor 1002, a memory 1003, and a display/playback device 1004. in:
  • the receiver 1001 is used to realize transmission interaction between decoding and other devices, and is specifically used to realize point cloud media transmission between the encoding device and the decoding device. That is, the decoding device receives the relevant media resources of the point cloud media transmitted by the encoding device through the receiver 1001.
  • the processor 1002 (or CPU (Central Processing Unit)) is the processing core of the encoding device.
  • the processor 1002 is suitable for implementing one or more computer-readable instructions, and is specifically suitable for loading and executing one or more computer-readable instructions.
  • the computer readable instructions realize the flow of the point cloud processing method shown in Figures 5 and 6.
  • Memory 1003 is a memory device in the decoding device, used to store computer readable instructions and media resources. It can be understood that the memory 1003 here may include a built-in storage medium in the decoding device, and of course may also include an extended storage medium supported by the decoding device. It should be noted that the memory 1003 can be a high-speed RAM memory or a non-volatile memory (non-volatile memory), such as at least one disk memory; optionally, it can also be at least one memory located far away from the aforementioned processor. The memory 1003 provides storage space for storing the operating system of the decoding device. Moreover, the storage space is also used to store computer-readable instructions.
  • the computer-readable instructions include computer-readable instructions, and the computer-readable instructions are suitable to be called and executed by the processor to execute the point cloud processing method. of each step.
  • the memory 1003 can also be used to store the three-dimensional image of the point cloud media formed after processing by the processor, the audio content corresponding to the three-dimensional image, and the information required for rendering the three-dimensional image and audio content, etc.
  • the display/playback device 1004 is used to output rendered sounds and three-dimensional images.
  • the processor 1002 may include a parser 1021, a decoder 1022, a converter 1023 and a renderer 1024; where:
  • the parser 1021 is used to decapsulate the encapsulated file of the rendering media from the encoding device. Specifically, it decapsulates the media file resources according to the file format requirements of the point cloud media to obtain the audio code stream and the video code stream; and The audio code stream and video code stream are provided to the decoder 1022.
  • the decoder 1022 performs audio decoding on the audio code stream, obtains the audio content, and provides it to the renderer for audio rendering. In addition, the decoder 1022 decodes the video code stream to obtain 2D images. According to the metadata provided by the media presentation description information, if the metadata indicates that the point cloud media has performed a region encapsulation process, the 2D image refers to an encapsulated image; if the metadata indicates that the point cloud media has not performed a region encapsulation process, the plane Image refers to a projected image.
  • Converter 1023 is used to convert 2D images into 3D images. If the point cloud media has performed a region encapsulation process, the converter 1023 will also first perform region decapsulation on the encapsulated image to obtain a projection image. The projected image is then reconstructed to obtain a 3D image. If the rendering media has not performed a region encapsulation process, the converter 1023 will directly reconstruct the projected image to obtain a 3D image.
  • the renderer 1024 is used to render audio content and 3D images of point cloud media. Specifically, audio content and 3D images are rendered according to the metadata related to rendering and windows in the media presentation description information, and the rendering is completed and handed over to the display/playback device for output.
  • the processor 1002 (specifically, each device included in the processor) executes each step of the point cloud processing method shown in Figures 5 and 6 by calling one or more instructions in the memory.
  • the memory stores one or more first instructions, which are suitable for the processor 1002 to load and execute the point cloud processing method described in the above embodiments.
  • the principles and beneficial effects of the decoding device provided in the embodiments of the present application are similar to the principles and beneficial effects of the point cloud processing method in the method embodiments of the present application. Please refer to the principles and beneficial effects of the implementation of the method. The effect is briefly described and will not be repeated here.
  • Embodiments of the present application also provide a computer-readable storage medium.
  • One or more computer-readable instructions are stored in the computer-readable storage medium.
  • the one or more computer-readable instructions are suitable for being loaded by a processor and executing the above method.
  • Embodiments of the present application also provide a computer program product containing instructions that, when run on a computer, cause the computer to execute the point cloud processing method of the above method embodiment.
  • Embodiments of the present application also provide a computer program product.
  • the computer program product includes computer-readable instructions, and the computer-readable instructions are stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer-readable instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned point cloud processing method.
  • Modules in the device of the embodiment of the present application can be merged, divided, and deleted according to actual needs.
  • readable storage media can include: flash disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种点云处理方法,由计算机设备执行,包括:设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种(S301);获取点云中待编码点的属性信息(S302);对待编码点的属性信息进行编码;以及,按照限制参数对编码过程进行控制(S303)。

Description

点云处理方法、装置、设备、存储介质及产品
本申请要求于2022年05月06日提交中国专利局、申请号为2022104882918、发明名称为“一种点云处理方法、装置、设备、存储介质及产品”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,具体涉及编解码技术领域,尤其涉及一种点云处理方法、一种点云处理装置、一种计算机设备、一种计算机可读存储介质及一种点云处理产品。
背景技术
随着科学技术的不断发展,目前已经能够以较低的成本、在较短的时间周期内获得大量高精度的点云,点云中可以包括多个点,点云中的每个点具备几何信息和属性信息。为了提升点云的传输效率,在对点云进行传输之前,通常需要对点云进行编码处理;具体来说,编码端对点云中各点的几何信息和属性信息进行编码后,可以将编码后的点云传输至解码端,解码端可以对编码后的点云进行解码,以重建点云中各点的几何信息和属性信息。实践发现,由于编码过程需要对各个点的属性信息进行整理,点云中各点的属性信息在编码时的等待时间较长,编码性能较低。
发明内容
根据本申请的各种实施例,提供了一种点云处理方法装置、设备、存储介质及产品。
一方面,本申请实施例提供了一种点云处理方法,由计算机设备执行,该点云处理方法包括:
设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取点云中待编码点的属性信息;
对待编码点的属性信息进行编码;以及,
按照限制参数对编码过程进行控制。
一方面,本申请实施例提供了另一种点云处理方法,由计算机设备执行,该点云处理方法包括:
获取点云中待解码点的编码码流;
获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
对待解码点的编码码流进行解码;以及,
按照限制参数对解码过程进行控制。
一方面,本申请实施例提供了一种点云处理装置,该点云处理装置包括:
设置单元,用于设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
获取单元,用于获取点云中待编码点的属性信息;及
处理单元,用于对待编码点的属性信息进行编码;以及,按照限制参数对编码过程进行控制。
一方面,本申请实施例提供了另一种点云处理装置,该点云处理装置包括:
获取单元,用于获取点云中待解码点的编码码流,以及,获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;及
处理单元,用于对待解码点的编码码流进行解码;以及,按照限制参数对解码过程进行控制。
相应地,本申请实施例提供一种计算机设备,该计算机设备包括处理器和计算机可读存储介质;其中,处理器适于实现计算机可读指令,计算机可读存储介质存储有计算机可读指令,计算机可读指令适于由处理器加载并执行上述的点云处理方法。
相应地,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可读指令,该计算机可读指令被计算机设备的处理器读取并执行时,使得计算机设备执 行上述的点云处理方法。
相应地,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可读指令,该计算机可读指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机可读指令,处理器执行该计算机可读指令,使得该计算机设备执行上述的点云处理方法。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。 附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种编码框架的示意图;
图1b为本申请实施例提供的一种当前点所在块及其父块邻居的关系示意图;
图2为本申请实施例提供的一种点云处理系统的架构图;
图3为本申请实施例提供的一种点云处理方法;
图4为本申请实施例提供的另一种点云处理方法;
图5为本申请实施例提供的又一种点云处理方法;
图6为本申请实施例提供的再一种点云处理方法;
图7为本申请实施例提供的一种点云处理装置的结构示意图;
图8为本申请实施例提供的另一种点云处理装置的结构示意图;
图9为本申请实施例提供的一种编码设备的结构示意图;
图10为本申请实施例提供的一种解码设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚地理解本申请实施例提供的技术方案,在此先对本申请实施例涉及的关键术语进行介绍:
(1)点云(Point Cloud)。点云是指空间中一组无规则分布的、表达三维物体或三维场景的空间结构及表面属性的离散点集。可以根据不同的分类标准将点云划分为不同的类别,例如,按照点云的获取方式划分,可以分为密集型点云和稀疏型点云,又如,按照点云的时序类型划分,可以分为静态点云和动态点云。
(2)点云数据(Point Cloud Data)。点云中各个点具备的几何信息和属性信息共同组成点云数据。其中,几何信息也可以称为三维位置信息,点云中某个点的几何信息是指该点的空间坐标(x,y,z),可以包括该点在三维坐标系统的各个坐标轴方向上的坐标值,例如,X轴方向上的坐标值x,Y轴方向上的坐标值y和Z轴方向上的坐标值z。点云中某个点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。
(3)点云编码(Point Cloud Compression,PCC)。点云编码是指对点云中各点的几何信息和属性信息进行编码,得到压缩码流的过程。点云编码可以包括几何信息编码和属性信息编码两个主要过程。目前主流的点云编码技术,针对点云的不同类型,可以分为基于几何结构的点云编码以及基于投影的点云编码,在此以MPEG(Moving Picture Expert Group,国际视音频编解码标准)中的G-PCC(Geometry-based Point Cloud Compression,基于几何结构的 点云编码),以及AVS(AudioVideoCodingStandard,中国国家视频编解码标准)中的点云编码标准AVS-PCC为例进行介绍。
G-PCC及AVS-PCC的编码框架大致相同,如图1a所示,可以分为几何信息编码过程以及属性信息编码过程。几何信息编码过程对点云数据中各点的几何信息进行编码,得到几何比特流;属性信息编码过程对点云数据中各点的属性信息进行编码,得到属性比特流;几何比特流和属性比特流共同组成点云数据的压缩码流。
对于几何信息编码过程,主要操作和处理可以参见如下描述:
①预处理(Pre-Processing):可以包括坐标变换(Transform Coordinates)和体素化(Voxelize)。通过缩放和平移的操作,将三维空间中的点云数据转换成整数形式,并将其最小几何位置移至坐标原点处。
②几何八叉树(Octree)编码:八叉树是一种树形数据结构,在三维空间划分中,对预先设定的包围盒进行均匀划分,每个节点都具有八个子节点。通过对八叉树各个子节点的占用与否采用“1”和“0”指示,获得占用码信息(Occupancy Code)作为点云几何信息的码流。包围盒是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
③几何熵编码(Geometry Entropy Encoding):针对八叉树的占用码信息,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常用的统计编码方式是基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
对于属性信息编码过程,主要操作和处理可以参见如下描述:
①属性重上色(Recoloring):有损编码情况下,在几何信息编码后,需编码端解码并重建几何信息,即恢复点云中各点的几何信息。在原始的点云中寻找对应一个或多个邻近点的属性信息,作为该重建点的属性信息。
②属性变换(Transform attributes)编码:采用属性变换算法(如DCT、Haar等),对属性信息进行分组、变换,对变换系数做量化;通过逆量化,逆变换后得到属性重建值;计算原始属性和属性重建值的差得到属性残差并对其量化;将量化后的变换系数和属性残差编码。
③属性信息量化(Attribute Quantization):量化的精细程度通常由量化参数来决定。在属性预测编码中,是对量化后的预测残差信息进行熵编码;在属性变换编码及属性预测变换编码中,是对量化后的变换系数进行熵编码。
④属性熵编码(Attribute Entropy Coding):量化后的预测残差信息或变换系数一般使用行程编码(Run Length Coding)及算数编码(Arithmetic Coding)实现最终的压缩。相应的编码模式,量化参数等信息也同样采用熵编码器进行编码。
(4)点云解码。点云解码是指对点云编码得到的压缩码流进行解码,以重建点云的过程;详细地说,是指基于压缩码流中的几何比特流和属性比特流,重建点云中各点的几何信息和属性信息的过程。在解码端获得压缩码流之后,对于几何比特流,首先进行熵解码,得到点云中各点量化后的几何信息,然后进行反量化,重建点云中各点的几何信息。而对于属性比特流,首先进行熵解码,得到点云中各点量化后的预测残差信息或量化后的变换系数;然后对量化后的预测残差信息进行反量化得到重建残差信息,对量化后的变换系数进行反量化得到重建变换系数,重建变换系数经反变换后得到重建残差信息,根据点云中各点的重建残差信息可以重建点云中各点的属性信息。将点云中各点重建的属性信息,按顺序与重建的几何信息一一对应,以重建点云。
此外,本申请还涉及如下技术:
(1)属性预测:
①点云重排序,具体过程如下:
获取点云的坐标(x,y,z),基于空间填充曲线生成每个点的莫顿(Morton)码或希尔伯特(Hilbert)码,并按照各个点进行编码处理时的编码顺序(如由小到大排序)进行排序,得到 莫顿序或希尔伯特序。以几何坐标的莫顿码为例,点云中点的几何位置用三维笛卡尔坐标(X,Y,Z)表示。用N比特来表示每个坐标值,k-th点的坐标(X k,Y k,Z k)可以表示成:
Figure PCTCN2022137750-appb-000001
Figure PCTCN2022137750-appb-000002
Figure PCTCN2022137750-appb-000003
k-th点对应的莫顿码可以表示如下:
Figure PCTCN2022137750-appb-000004
将每三个比特用八进制数表示,
Figure PCTCN2022137750-appb-000005
则k-th点对应的莫顿码可以表示成:
Figure PCTCN2022137750-appb-000006
②基于序的邻居点选择,具体过程如下:
基于序的邻居点选择包括基于距离的选择方法、基于空间关系和距离的选择方法。下面对上述方法进行介绍:
i)基于距离的方法,具体步骤如下:
在莫顿序或希尔伯特序的前P个邻居候选点中,P可以由最大邻居数量字段(maxNumOfNeighbours)确定,计算每个邻居候选点(第i个邻居候选点表示为(x i,y i,z i)),到当前待解码点(x,y,z)的曼哈顿距离d=|x-x i|+|y-y i|+|z-z i|。在得到每个邻居候选点到当前待解码点(x,y,z)的曼哈顿距离后,可以将曼哈顿距离最短的k个邻居候选点作为当前待解码点的邻居;或者,确定k个曼哈顿距离最短的点中的最大距离值,将所有曼哈顿距离小于等于最大距离值的邻居候选点作为当前点的邻居,最终确定曼哈顿距离最近的m个点作为当前待解码点的最近邻,m,k为正整数,且m≤k。
ii)基于空间关系和距离的选择方法,具体步骤如下:
首先,确定初始块大小,即确定各点对应码字的初始右移位数N。在此基础上,N+3则为对应的父块范围。
然后,点云按照一定顺序遍历,如图1b所示,当前待解码点(点P)在其所在B块的父块及与其共面、共线以及共点的邻居块的范围内的已解码点(限制在前k个点的范围内)进行最近邻的搜索。
若按照上述方法确定的当前待解码点的邻居点数量不足,则按i)中基于距离的方法进行邻居点选择。
③预测值计算,具体过程如下:
设每个邻居的属性重建值为
Figure PCTCN2022137750-appb-000007
则当前点的属性预测值
Figure PCTCN2022137750-appb-000008
为:
Figure PCTCN2022137750-appb-000009
i)基于距离的加权计算:
在一种实施方式中,用当前待解码点与邻居点之间的曼哈顿距离的倒数作为权重,最后计算k个邻居点的属性重构值的加权平均获得属性预测值。设当前待解码点的几何坐标为(x i,y i,z i),第j个邻居点的几何坐标为(x ij,y ij,z ij),则第j个邻居点的权重w ij为:
Figure PCTCN2022137750-appb-000010
在另一种实施方式中,若在x、y、z方向的分量采用不同权重,则第j个邻居点的权重w ij为:
Figure PCTCN2022137750-appb-000011
ii)基于距离和其他参数的加权计算:
当前待解码点的每个邻居点的权重为w=1/d,距离等于最大距离值的邻居候选点的优化权重为wm=(1/d)*dwm,其中dwm大小为Qstep(属性量化步长)和距离等于最大距离值的 邻居候选点的个数两者之间的最小值。
(2)属性变换:
属性变换的核心是预测与变换融合的属性编码,具体过程如下:
首先,对经过颜色空间转换和重着色的待编码点云,按照希尔伯特码由小到大进行重排序,然后采用自适应的分组和相应的K元变换。具体过程如下:
i)点云分组:
基于空间填充曲线的序对点云依次进行分组,将希尔伯特码前L位相同的点归为一组。当同组的点数多于预设限制点数时,进行细分组。此外,在分组时还可以根据前序组的分组点数情况进行调整。
ii)组内预测:
预测点选择范围在当前组第一个点的前序P个点中,P可以由最大邻居数量字段(maxNumOfNeighbours)确定。对这P个点进行逐点预测,并对各组选择或计算统一的预测值。例如,采用当前组的第一个点的预测值作为当前组的预测值。
iii)基于残差值变换:
每组点的预测属性残差值进行K_i元离散余弦变换(DCT for Discrete Cosine Transform,DCT变换),其中,K_i=2…8,将变换系数进行量化熵编码。当K_i=1时,无需进行任何变换计算,直接将属性残差值进行量化熵编码。对所得变换系数进行量化。
(3)熵编码:
对量化(有损情况下)后的有符号属性预测残差或变换系数进行二值化和处理。熵编码可以采用变长编码、基于上下文的自适应二进制算术编码、行程编码等方式,具体地:
①变长编码:
采用不同长度的码字表示需要编码的残差或系数。需要根据符号出现的概率设计码长。常用的变长编码包括指数哥伦布编码(exp-Golomb)和算术编码。
②基于上下文的自适应二进制算术编码(CABAC),主要包括如下步骤:
二值化:CABAC使用二进制算数编码,这意味着仅仅有两个数字(1或0)被编码。一个非二进制的数值符号,比如一个转换系数或者运动适量,在算术编码之前会首先被二值化或者转化成二进制码字。这个过程类似于将一个数值转化成可变长码字。在具体实现过程中,这个二进制码字在传输之前会通过算术编码器进一步的编码。
上下文模型选择:上下文模型是一个概率模型,这个模型是根据最近的被编码的数据符号的统计数字而选择的一个模型。这个模型保存了每个‘bin’是1或者0的概率。
算术编码:算术编码器根据选择的概率模型,对每一个‘bin’进行编码。
概率更新:被选中的上下文模型会根据实际的编码值而去更新。例如,如果‘bin’的值是1,那么1的频率计数会增加。
③行程编码(run-length coding):
统计数据中连续为特定符号的点数记为行程长度run-length。若当前符号为零,则run-length值增加1;若非零,则首先对run_length值进行编码,然后对该非零属性预测残差进行编码,最后将run-length值设置为0重新开始计数。其残差可采用常用的熵编码方法,如变长编码或CABAC。
具体的,行程编码分为定长行程编码和变长行程编码两种。定长行程编码是指编码的行程所使用的二进制位数固定。变长行程编码是指对不同范围的行程使用不同位数的二进制位数进行编码,需要增加标志位来表明所使用的二进制位数。
基于上述关于点云、点云数据、点云编码、点云解码、属性预测、属性变换和熵编码的相关描述,本申请实施例提供了一种点云处理方案,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行 解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。
本申请实施例提供的点云处理方案还可与云技术中的云计算、云存储等技术结合。其中,云计算(Cloud Computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务,云计算可为点云属性的编码阶段和点云属性的解码阶段提供强大的计算支持,这样可以大大提升点云属性的编码效率,提升点云属性的解码效率。云存储(Cloud Storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统,云存储可为点云属性的编码阶段和点云属性的解码阶段提供强大的存储支持,这样可进一步提升点云属性的编码效率,提升点云属性的解码效率。此外,本申请实施例提供的点云处理方案还可与人工智能结合。本申请实施例主要涉及人工智能中的深度学习技术,具体可以通过训练数据集,对编解码过程中所使用的模型进行优化训练。例如,可以通过训练数据集对初始模型进行训练,得到上下文模型。
基于上述描述,下面结合图2对适于实现本申请实施例提供的点云处理方案的点云处理系统进行介绍。如图2所示,点云处理系统20中可以包括编码设备201和解码设备202,编码设备201可以是终端,也可以是服务器,解码设备202可以是终端,也可以是服务器,编码设备201和解码设备202之间可以建立通信连接。其中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
(1)对于编码设备201:
编码设备201可以获取点云数据(即点云中各点的几何信息和属性信息),点云数据可以通过场景捕获或设备生成两种方式获取得到。场景捕获点云数据是指通过编码设备201关联的捕获设备采集真实世界的视觉场景得到点云数据;其中,捕获设备用于为编码设备201提供点云数据的获取服务,捕获设备可以包括但不限于以下任一种:摄像设备、传感设备、扫描设备;其中,摄像设备可以包括普通摄像头、立体摄像头、以及光场摄像头等,传感设备可以包括激光设备、雷达设备等,扫描设备可以包括三维激光扫描设备等;编码设备201关联的捕获设备可以是指设置于编码设备201中的硬件组件,例如捕获设备是终端的摄像头、传感器等,编码设备关联的捕获设备也可以是指与编码设备201相连接的硬件装置,例如与服务器相连接的摄像头等。设备生成点云数据是指编码设备201根据虚拟对象(例如通过三维建模得到的虚拟三维物体及虚拟三维场景)的生成点云数据。
编码设备201可以对点云中各点的几何信息进行编码处理,得到几何比特流(包含点云中各点的几何编码信息),以及可以对点云中各点的属性信息进行编码处理,得到属性比特流(包含点云中各点的属性编码信息)。特别地,编码设备201对点云中的待编码点的属性信息进行编码处理时,可以设置点云的限制参数,基于点云的限制参数,对获取的待编码点的属性信息进行编码,从而编码过程进行控制。在得到点云的压缩码流后,编码设备201将压缩码流(即属性比特流和几何比特流)传输至解码设备202。
(2)对于解码设备202:
解码设备202接收到编码设备201传输的压缩码流(即属性比特流和几何比特流)后,可以对几何比特流进行解码处理,重建点云中各点的几何信息,以及可以对属性比特流进行解码处理,得到点云中各点的属性信息。特别地,解码设备202对点云中的待解码点进行解码处理时,可以获取点云的限制参数,并基于点云的限制参数对获取的待解码点的编码码流 进行解码,从而对解码过程进行控制。在得到点云中各点的重建几何信息和重建属性信息后,解码设备202将点云中各点的重建几何信息和重建属性信息一一对应,以重建点云。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。本申请实施例通过点云的限制参数,使得点云中各个点的属性信息的编解码过程可控,进而提高点云属性信息的编解码性能。可以理解的是,本申请实施例描述的点云处理系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述点云处理系统的相关描述,下面结合附图对本申请实施例提供的点云处理方案进行更为详细地介绍。
请参阅图3,图3为本申请实施例提供的一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的编码设备201。如图3所示,该点云处理方法可以包括以下步骤S301-步骤S303:
S301、设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种。
限制参数用于设置对点云中待编码点的属性信息进行编码的触发条件。限制参数可以包括缓存限制参数和延迟限制参数中的至少一种;其中,缓存限制参数用于对编码过程中的缓存逻辑进行控制,例如,当缓存队列中的待编码点的属性信息对应的中间系数(如待编码点的属性信息对应的残差、变换系数等)的数量满足基于缓存限制参数设置的触发条件(如缓存队列中的待编码点的属性信息对应的中间系数的数量达到缓存参数所指示的缓存阈值)时,计算机设备(编码设备)对缓存队列中的待编码点的属性信息对应的中间系数进行编码;类似地,延迟限制参数用于对编码过程中的编码逻辑进行控制,例如,当待编码点的属性信息对应的中间系数的延迟数量满足基于延迟限制参数设置的触发条件(如待编码点的属性信息对应的中间系数的延迟数量达到延迟参数所指示的延迟阈值)时,计算机设备(编码设备)对待编码点的属性信息对应的中间系数进行编码,延迟数量用于指示当前待编码点的属性信息对应的中间系数的数量。
限制参数的设置方式包括以下任一种或多种:将限制参数设置为默认值;将限制参数设置为固定值,并将设置好的限制参数封装至编码形成的编码码流中;将限制参数设置为可变值,并将设置好的限制参数封装至编码形成的编码码流中,例如,在编码码流1中将限制参数设置为a,在编码码流2中将限制参数设置为b,在编码码流3中将限制参数设置为c,且a,b,c互不相同;在编码过程中动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中;以编码为行程编码为例,计算机设备可以统计前Q个行程的长度,并根据前Q个行程的长度动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中。可以理解的是,若未对限制参数进行设置,则限制参数为默认值。通过多样的设置方式针对限制参数进行限制,可以根据实际需要对编码进行灵活的延迟控制,从而确保各种场景下点云属性信息的编码性能。
S302、获取点云中待编码点的属性信息。
待编码点的属性信息可以包括以下至少一种:颜色信息、材质信息、激光反射强度信息(也可以称为反射率);通常,点云中的每个点具有相同数量的属性信息,例如,点云中的每个点都可以具有颜色信息和激光反射强度两种属性信息,又如,点云中的每个点都可以具有颜色信息、材质信息和激光反射强度信息三种属性信息。待编码点的属性信息可以是基于采集设备(如摄像机、3D激光扫描仪)采集的数据生成的,也可以是计算机根据虚拟三维物体及场景直接生成的。
S303、对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。
对待编码点的属性信息进行编码的方式包括:以点数为单位对待编码点的属性信息进行编码,以及以组数为单位对待编码点的属性信息进行编码。以点数为单位进行编码是指将点云中的一个点作为基本编码单位进行编码;以组数为单位进行编码是指将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本编码单位进行编码。
在一种实施方式中,计算机设备以点数为单位对待编码点的属性信息进行编码的实施方式为:对待编码点的属性信息进行转换处理,得到待编码点的中间系数;其中,对待编码点的属性信息进行转换处理可以是:对待编码点的属性信息进行预测,得到待编码点的预测信息与待编码点的属性信息之间的残差;也可以是:在得到残差后,对残差进行变换得到变换系数;也就是说,对待编码点的属性信息进行转换处理,得到的待编码点的中间系数可以是残差或变换系数。
在得到待编码点的中间系数后,计算机设备可以将待编码点的中间系数写入至缓存中,并从缓存中读取待编码点的中间系数进行编码;例如,计算机设备可以将待编码点的中间系数写入至基于缓存限制参数设置的缓存队列中,当缓存队列中存满(如缓存队列汇总存储的待编码点的中间系数达到缓存阈值)时,计算机设备从缓存队列中读取待编码点的中间系数进行编码。计算机设备也可以获取当前待编码点的中间系数的延迟数量,若当前待编码点的中间系数的延迟数量达到延迟阈值,则计算机设备对当前待编码点的中间系数进行编码。计算机设备对待编码点的中间系数进行编码的具体实施方式可参考上述点云编码的实施方式。本实施例中,以点数为单位针对待编码点的属性信息进行转换处理,将得到的中间系数写入至缓存中,以从缓存中读取中间系数进行编码,可以对点云编码过程进行延迟控制,能够避免点云编码等待时间过长,有利于提高点云属性信息的编解码性能。
在另一种实施方式中,计算机设备以组数为单位对待编码点的属性信息进行编码的实施方式为:对待编码点的属性信息进行分组处理,得到多组点云分组。分组的依据可以根据实际编码需求进行设定,在一个实施例中,计算机设备可以基于空间填充曲线的序对待编码点的属性信息进行分组;例如,计算机设备可以将希尔伯特码前L位相同的待编码点的属性信息归为一组。在得到多组点云分组后,计算机设备可以对点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组;对点云分组中的待编码点的属性信息进行转换的具体实施方式可参考上一实施例,转换后的点云分组中包含待编码点的中间系数,中间系数包括残差或变换系数。
在得到转换后的点云分组后,计算机设备可以将转换后的点云分组写入至缓存中,并从缓存中依次读取转换后的点云分组中的待编码点的中间系数进行编码;例如,计算机设备可以将转换后的点云分组写入至基于缓存限制参数设置的缓存队列中,当缓存队列中存满(如缓存队列中存储的转换后的点云分组达到缓存阈值)时,计算机设备从缓存队列中读取转换后的点云分组进行编码。计算机设备也可以获取当前转换后的点云分组的延迟数量,若当前转换后的点云分组的延迟数量达到延迟阈值,则计算机设备对当前转换后的点云分组进行编码。计算机设备对转换后的点云分组进行编码的具体实施方式可参考上述点云编码的实施方式。本实施例中,以组数为单位针对待编码点的属性信息进行转换处理,将得到的中间系数写入至缓存中,以从缓存中读取中间系数进行编码,可以对点云编码过程进行延迟控制,能够避免点云编码等待时间过长,有利于提高点云属性信息的编解码性能。
本申请实施例中,当需要对点云中的待编码点进行编码处理时,可以设置点云的限制参数,获取点云中待编码点的属性信息,对待编码点的属性信息进行编码,以及按照限制参数对编码过程进行控制。本申请实施例通过设置点云的限制参数,使得待编码点的属性信息编码过程可控,进而提高点云属性信息的编码性能。
请参阅图4,图4为本申请实施例提供的另一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的编码设备201。如图4所示,该点云处理方法可以包括以下步骤S401-步骤S405:
S401、设置点云的限制参数。
限制参数包括缓存限制参数(coeffLengthControl)和延迟限制参数(maxNumofCoeff)中的一种或两种。限制参数用于确定编码限制点数阈值。
在一种实施方式中,限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位。以点数为单位进行限制是指当以点数为单位进行编码时,限制待编码点的个数;以组数为单位进行限制是指当以组数为单位进行编码时,限制待编码的分组的组数。当限制参数为缓存限制参数时,编码限制点数阈值为缓存限制点数阈值;缓存限制参数的单位可以是点数,或者是组数。类似地,当限制参数为延迟限制参数时,编码限制点数阈值为延迟限制点数阈值;延迟限制参数的单位可以是点数,或者是组数。具体来说:
若限制参数以点数为单位,且限制参数的值为X1,则编码限制点数阈值为X1个待编码点的中间系数的实际总数量;例如,假设限制参数为缓存限制参数,以点数为单位,且缓存限制参数的值为1024,则编码限制点数阈值为1024个待编码点的中间系数的实际总数量;又例如,假设限制参数为延迟限制参数,以点数为单位,且延迟限制参数的值为2048,则编码限制点数阈值为2048个待编码点的中间系数的实际总数量。
若缓存限制参数以组数为单位,且限制参数的值为X2,则编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;例如,假设限制参数为缓存限制参数,以组数为单位,且缓存限制参数的值为64,则编码限制点数阈值为64组点云分组中的待编码点的中间系数的实际总数量;假设限制参数为延迟限制参数,以组数为单位,且延迟限制参数的值为128,则编码限制点数阈值为128组点云分组中的待编码点的中间系数的实际总数量。
若限制参数以组数为单位,且限制参数的值为X3,并且每组点云分组的点数限制为X4,则编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,总数量不超过X3*X4的值。例如,假设限制参数为缓存限制参数,以组数为单位,且缓存限制参数的值为64,并且每组点云分组的点数限制为4,则编码限制点数阈值为64组点云分组中的待编码点的中间系数的实际总数量,总数量不超过64*4=256;假设限制参数为延迟限制参数,以组数为单位,且延迟限制参数的值为128,并且每组点云分组的点数限制为4,则编码限制点数阈值为128组点云分组中的待编码点的中间系数的实际总数量,总数量不超过128*4=512。本实施例中,针对限制参数不同类型以及不同的单位,对应确定需要在编码时进行延迟控制的待编码点的数量,从而能够对各种限制参数设置场景下的编码过程进行准确延迟控制,确保点云属性信息的编解码性能。
在另一种实施方式中,当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位;其中,限制参数1以倍数为单位是指:当限制参数2以点数为单位限制待编码的点数的数量时,限制参数1以点数为单位限制待编码的点数的数量,且限制参数1是限制待编码的点数的数量是限制参数2限制待编码的点数的数量的倍数;具体来说,若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍;例如,假设延迟限制参数(限制参数1)以倍数为单位,且值为2;当缓存限制参数(限制参数2)以点数为单位,且缓存限制参数的值为1024时,延迟限制参数以点数为单位,且延迟限制参数的值为1024*2=2048。
当限制参数2以组数为单位限制待编码分组的数量时,限制参数1以组数为单位限制待编码分组的数量,且限制参数1是限制待编码分组的数量是限制参数2限制待编码分组的数量的倍数;具体来说,若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍;例如,假设延迟限制参数(限制参数1)以倍数为单位,且值为2;当缓存限制参数(限制参数2)以组数为单位,且缓存限制参数的值为64时,延迟限制参数以组数为单位,且延迟限制参数的值为 64*2=128。本实施例中,结合缓存限制参数和延迟限制参数,确定需要在编码时进行延迟控制的待编码点的数量,能够对包括缓存限制参数和延迟限制参数两种参数的限制参数设置场景下的编码过程进行准确延迟控制,确保点云属性信息的编解码性能。
由上述可知,组合的方式包括:限制参数1和限制参数2均以点数为单位,或者以组数为单位;限制参数1以点数为单位,限制参数2以组数为单位,或者限制参数2以倍数为单位;限制参数1以组数为单位,限制参数2以点数为单位,或者限制参数2以倍数为单位。可以理解的是,上述限制参数1可以是缓存限制参数和延迟限制参数中的任一个,上述限制参数2是缓存限制参数和延迟限制参数中的另一个。通过限制参数包括参数种类数目,以及相应单位的灵活设置,可以可以根据实际需要对编码进行灵活的延迟控制,从而确保各种场景下点云属性信息的编码性能。
S402、获取点云中待编码点的属性信息。
步骤S402的具体实施方式可参考图3中步骤S302的实施方式。
当限制参数为缓存限制参数时,继续执行步骤S403;当限制参数为延迟限制参数时,继续执行步骤S404;当限制参数包括缓存限制参数和延迟限制参数时,继续执行步骤S405。
S403、对待编码点的属性信息进行编码,以及按照缓存限制参数对编码过程中的缓存逻辑进行控制。
在一种实施方式中,缓存限制参数用于限制缓存中允许写入的待编码点的数量,每个待编码点可以包括一个或多个中间系数。通过缓存限制参数对缓存中允许写入的待编码点的数量进行控制,使得待编码点的属性信息编码过程可控,能够避免点云编码等待时间过长,进而提高点云属性信息的编码性能。具体地,计算机设备根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待编码点的数量阈值,每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,计算机设备从缓存中读取待编码点的中间系数进行编码。通过缓存限制参数确定的缓存限制点数阈值,对缓存中允许写入的待编码点的数量进行控制,在缓存中允许写入的待编码点的数量达到缓存限制点数阈值时触发进行编码,能够避免点云编码等待时间过长,进而提高点云属性信息的编码性能。
在一个实施例中,编码方式为以组数为单位的编码方式,即将点云中的一个分组作为基本编码单位进行编码。在缓存中写入的待编码点的数量达到缓存限制点数阈值,控制从缓存中读取待编码点的中间系数进行编码时,计算机设备统计缓存中每组点云分组中包含的待编码点的总点数,当缓存中存储的分组数量为M,且这M组点云分组包含的待编码点的总点数达到缓存限制点数阈值时,计算机设备从缓存中读取这M组点云分组中包含的待编码点的中间系数进行编码。进一步地,计算机设备清空缓存,并继续将待编码点的中间系数写入缓存中。本实施例中,在以组数为单位进行编码时,通过缓存限制点数阈值控制所有点云分组中待编码点的总点数,以对待编码点的属性信息编码过程进行延迟控制,有利于提高点云属性信息的编码性能。
在另一个实施例中,编码方式为以组数为单位的编码方式,即将点云中的一个分组作为基本编码单位进行编码。在缓存中写入的待编码点的数量达到缓存限制点数阈值,控制从缓存中读取待编码点的中间系数进行编码时,计算机设备统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数;例如,设M=64,点数限制阈值为8,则缓存中包含的待编码点的总点数=64*8=512。若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则计算机设备控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码。进一步地,计算机设备清空缓存,并继续将待编码点的中间系数写入缓存中。本实施例中,在以组数为单位进行编码时,通过点数限制阈值控制每个点云分组中待编码点的点数,通过缓存限制点数阈值控制所有点云分组中待编码点的总点数,以对待编码点的属性信息编码过程进行延迟控制,有利于提高点云属性信息的编码性能。
在另一种实施方式中,编码方式为以组数为单位的编码方式,即将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本编码单位进行编码。计算机设备根据缓存 限制参数确定缓存中允许写入的点云分组的组数阈值;每当缓存中写入的点云分组的数量达到组数阈值时,计算机设备从缓存中读取缓存中写入的点云分组包含的待编码点的中间系数进行编码。例如,若缓存限制参数的值为64,则计算机设备根据缓存限制参数确定缓存中允许写入的点云分组的组数为64,每当缓存中写入的点云分组的数量为64时,计算机设备从缓存中读取这64组点云分组包含的待编码点的中间系数进行编码。本实施例中,在以组数为单位进行编码时,通过组数阈值对缓存中允许写入的点云分组的数量进行延迟控制,有利于提高点云属性信息的编码性能。
进一步地,计算机设备可以按照预设排列方式对缓存中写入的点云分组进行排列,并将预设排列方式封装至编码形成的编码码流中;计算机设备将缓存中的点云分组的中间系数排列方式封装至编码形成的编码码流中的一种具体实现方式为:每种排列方式对应一个索引值,计算机设备将缓存中点云分组的中间系数排列方式对应的索引值写入至编码码流中。通过将点云分组的中间系数排列方式对应的索引值写入至编码码流中,便于基于索引值对编码码流进行解码,有利于提高针对编码码流的解码处理效率。计算机设备也可以按照预设排列方式对缓存中写入的点云分组进行排列,并将预设排列方式直接发送给解码设备;计算机设备还可以按照默认排列方式对缓存中写入的点云分组进行排列。可以理解的是,按照默认排列方式对缓存中写入的点云分组进行排列时,计算机设备无需告知解码设备排列方式。其中,预设排列方式包括以下任一种:固定排列方式和动态排列方式;固定排列方式是指每次缓存的点云分组的中间系数排列方式(如按照相似度、按照分组中包含的待编码点的点数等)相同,动态排列方式是指缓存的点云分组的中间系数排列方式存在变化;例如,第一次缓存的点云分组的中间系数排列方式与第二次缓存的点云分组的中间系数排列方式相同,且第三次缓存的点云分组的中间系数排列方式不同。本实施例中,通过固定排列方式和动态排列方式中的任一种排列方式将缓存中写入的点云分组进行排列,能够确保点云的有序编码,有利于提高针对编码码流的解码处理效率。
在再一种实施方式中,编码包括行程编码,计算机设备根据缓存限制参数确定缓存中允许写入的待编码点的缓存限制点数阈值,缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;缓存限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式。在行程编码过程中,计算机设备设置用于对连续特定符号进行计数的行程长度。在开始时,将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中,若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若读取的待编码点的数量等于缓存限制点数阈值,则对当前行程长度进行编码,或者对缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为初始值以重新计数。若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,设缓存限制参数以点数为单位,且值为1024(即缓存限制点数为1024),若计算机设备采用行程编码对待编码点的属性信息的残差进行编码,则计算机设备统计待编码点的属性信息的残差中连续为特定符号(如0)的点数,记为run-length,若当前待编码点的属性信息的残差为特定符号,则run-length值增加1,每当缓存中待编码点的点数达到1024时,计算机设备编码run-length的值和当前编码点的属性信息的残差,将run-length设置为初始值(如0),并重新对run-length进行计数。若当前待编码点的属性信息的残差为非特定符号(如非0),则计算机设备对当前run-length值以及当前待编码点的属性信息的残差进行编码,将run-length设置为初始值(如0),并重新对run-length进行计数。
本实施例中,在从缓存中按序读取待编码点的中间系数时,通过行程长度针对不同符号的中间系数进行编码控制,从而将不同符号的中间系数分开进行编码,有利于确保点云属性信息的编码性能。
S404、对待编码点的属性信息进行编码,以及按照延迟限制参数对编码过程中的延迟逻辑进行控制。
通过延迟限制参数对待编码点的数量进行延迟控制,使得待编码点的属性信息编码过程可控,能够避免点云编码等待时间过长,进而提高点云属性信息的编码性能。计算机设备对待编码点的属性信息进行编码的具体编码方式为需要对前序进行统计的编码方式;例如,计算机设备对待编码点的属性信息进行编码的具体编码方式可以是行程编码。下面以编码方式为行程编码为例进行说明:
在一种实施方式中,计算机设备根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;延迟限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式。在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度,将行程长度设置为初始值(如0),在从缓存中顺序读取待编码点的中间系数的过程中,若计算机设备读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长,计算机设备获取行程长度的计数值,若行程长度的计数值达到延迟限制点数阈值,则计算机设备进行参数编码处理,并将行程长度重置为初始值以重新计数。其中,计算机设备进行参数编码处理是指:计算机设备对当前行程长度进行编码;或者,计算机设备对限制标识符进行编码,限制标识符用于将行程长度设置为预设值(如预设值可以是延迟限制点数阈值);或者,计算机设备对延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。若计算机设备读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,假设当前行程长度为63,特定符号为0,延迟限制点数阈值为64;若计算机设备读取到待编码点的中间系数的值为0,则当前行程长度为63+1=64,计算机设备对当前行程长度(64)进行编码,或者计算机设备对限制标识符进行编码,或者计算机设备对延迟限制点数阈值(64),以及值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数;若计算机设备读取到待编码点的中间系数的值为1(非0),则计算机设备对当前行程长度(63),及值为1的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。
本实施例中,按照延迟限制参数对编码过程中的延迟逻辑进行控制过程中,在从缓存中按序读取待编码点的中间系数时,通过行程长度针对不同符号的中间系数进行编码控制,在行程长度的计数值达到延迟限制点数阈值时针对进行参数编码处理,对于读取到非特定符号的中间系数时进行编码处理,从而将不同符号的中间系数分开进行编码,有利于确保点云属性信息的编码性能。
在另一种实施方式中,计算机设备根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值,延迟限制点数阈值的确定方式可以参考步骤S401中编码限制点数阈值的确定方式。在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度,将行程长度设置为初始值(如0),在从缓存中顺序读取待编码点的中间系数的过程中,若计算机设备读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若待编码点的数量达到延迟限制点数阈值,则计算机设备对当前行程长度进行编码,或者计算机设备对延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。若计算机设备读取到值为非特定符号的待编码点的中间系数,则计算机设备对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
举例来说,假设当前延迟的中间系数的数量为58,特定符号为0,允许延迟的待编码点的数量阈值为64;若计算机设备读取到待编码点的中间系数的值为0,则当前行程长度为58+1=59,计算机设备继续读取下一个中间系数;若计算机设备读取到待编码点的中间系数的值为1(非0),则计算机设备对当前行程长度(59),及值为1的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数。
本实施例中,按照延迟限制参数对编码过程中的延迟逻辑进行控制过程中,在从缓存中按序读取待编码点的中间系数时,通过行程长度针对不同符号的中间系数进行编码控制,在 待编码点的数量达到延迟限制点数阈值时针对进行参数编码处理,对于读取到非特定符号的中间系数时进行编码处理,从而将不同符号的中间系数分开进行编码,有利于确保点云属性信息的编码性能。
可以理解的是,在上述实施例中行程编码中的行程长度小于或等于延迟限制点数阈值;基于此,计算机设备还可以按照延迟限制点数阈值设置行程长度的比特位数,从而能够确保行程长度不超过延迟限制点数阈值,确保能够通过行程长度针对不同符号的中间系数进行编码控制,有利于确保点云属性信息的编码性能。
举例来说,设延迟限制参数以点数为单位,且值为1024(即延迟限制点数为1024),若计算机设备采用行程编码对待编码点的属性信息的残差进行编码,则计算机设备统计待编码点的属性信息的残差中连续为特定符号(如0)的点数,记为run-length,若当前待编码点的属性信息的残差为特定符号,则run-length值增加1,每当run-length的值达到1024时,计算机设备编码run-length的值和当前编码点的属性信息的残差,将run-length设置为初始值(如0),并重新对run-length进行计数。若当前待编码点的属性信息的残差为非特定符号(如非0),则计算机设备对当前run-length值以及当前待编码点的属性信息的残差进行编码,将run-length设置为初始值(如0),并重新对run-length进行计数。
S405、对待编码点的属性信息进行编码,以及按照缓存限制参数和延迟限制参数对编码过程中的编码逻辑进行控制。
通过缓存限制参数和延迟限制参数对待编码点的数量进行延迟控制,使得待编码点的属性信息编码过程可控,能够避免点云编码等待时间过长,进而提高点云属性信息的编码性能。在一种实施方式中,缓存限制参数和延迟限制参数相互独立。以待编码点的属性信息的中间系数为变换系数为例,计算机设备首先按照缓存限制参数对编码过程中的缓存逻辑进行控制;具体的实施方式可参考步骤S403中的实施方式。若以组为单位进行编码,则在将点云分组的中间系数进行缓存后,计算机设备可以对点云分组的中间系数进行排列,并可以将排列方式写入至编码码流中;或者,直接向解码设备指定排列方式。计算机设备清空缓存并重复上述步骤,直到所有点云分组的中间系数都编码完成。在编码过程中,计算机设备按照延迟限制参数,确定行程编码时的行程长度,并基于行程长度对编码过程中的编码逻辑进行控制;具体的实施方式可参考步骤S404中的实施方式。
例如,假设缓存限制参数和延迟限制参数均以点数为单位进行设置,且缓存限制参数为1024,延迟限制参数为2048,以组为单位进行编码;计算机设备统计缓存中各待编码点云分组中包含的待编码点的数量,基于缓存限制参数和缓存中各待编码点云分组中包含的待编码点的数量确定组数M;其中,M为正整数,M组待编码点云分组中包含的待编码点的总数量小于等于1024,且M+1组待编码点云分组中包含的待编码点的总数量大于1024。计算机设备逐一对M组待编码点云分组中的变换系数进行排列(如固定排列方式、随机排列方式、指定排列方式)。在获得M组待编码点云分组中的变换系数后,计算机设备对当前缓存进行清空重新开始缓存待编码分组的变换系数,直到所有点云分组中的变换系数都编码完成。在具体实现过程中,每个点云分组的变换系数包含一个第一变换系数DC和至少一个第二变换系数{AC}。变换系数的排列方式由计算机设备(编码设备)限定,例如,对偶数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为偶数,按[DC1,...,DCM,{AC1},...,{ACM}]排列;对奇数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为技术,按[{AC1},...,{ACM},DC1,...,DCM]排列。在编码过程中,计算机设备可以采用行程编码对待编码点的属性信息的残差进行编码,统计待编码点的属性信息的残差中连续为特定符号的点数记为行程长度run-length。若当前待编码点的属性信息的残差符号为特定值(如0),则run-length值增加1,每当run-length达到延迟限制参数指示的延迟限制点数时,编码run-length的值和当前待编码点的属性信息的残差,并将run-length置0,重新开始计数。若当前待编码点的属性信息的残差符号为非特定值(如非0),则计算机设备首先对run-length值进行编码,然后对当前待编码点的属性信息的残差进行编码,并将run-length置0,重新开始计 数。
在另一种实施方式中,缓存限制参数和延迟限制参数相互关联;也就是说,缓存限制参数基于延迟限制参数确定,或者延迟限制参数基于缓存限制参数确定。以待编码点的属性信息的中间系数为变换系数为例,计算机设备在基于关联性确定缓存限制参数和延迟限制参数后,按照缓存限制参数对编码过程中的缓存逻辑进行控制;具体的实施方式可参考步骤S403中的实施方式。若以组为单位进行编码,则在将点云分组的中间系数进行缓存后,计算机设备可以对点云分组的中间系数进行排列,并可以将排列方式写入至编码码流中;或者,直接向解码设备指定排列方式。计算机设备清空缓存并重复上述步骤,直到所有点云分组的中间系数都编码完成。在编码过程中,计算机设备按照延迟限制参数,确定行程编码时的行程长度,并基于行程长度对编码过程中的编码逻辑进行控制;具体的实施方式可参考步骤S404中的实施方式。
例如,设延迟限制参数以倍数为单位,且值为2;缓存限制参数以组数为单位,且值为64,则基于缓存限制参数确定的缓存限制点数为64组点云分组中待编码点的总点数,基于延迟限制参数确定的延迟限制点数为64*2=128组点云分组中待编码点的总点数。又例如,设缓存限制参数以组数为单位,且值为64,且64组点云分组中第一组点云分组的第二变换系数为k个,则延迟限制参数以点数为单位,值为64+k,以保证第一组点云分组的实时解码。若以组为单位进行编码;计算机设备统计64组点云分组中包含的待编码点的数量,逐一对64组待编码点云分组中的变换系数进行排列(如固定排列方式、随机排列方式、指定排列方式)。在获得64组待编码点云分组中的变换系数后,计算机设备对当前缓存进行清空重新开始缓存待编码分组的变换系数,直到所有点云分组中的变换系数都编码完成。在具体实现过程中,每个点云分组的变换系数包含一个第一变换系数DC和至少一个第二变换系数{AC}。变换系数的排列方式由计算机设备(编码设备)限定,例如,对偶数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为偶数,按[DC1,...,DCM,{AC1},...,{ACM}]排列;对奇数次的缓存限制参数点内的变换系数,或者说缓存中点云分组的组数为技术,按[{AC1},...,{ACM},DC1,...,DCM]排列。在编码过程中,计算机设备可以采用行程编码对待编码点的属性信息的残差进行编码,统计待编码点的属性信息的残差中连续为特定符号的点数记为行程长度run-length。若当前待编码点的属性信息的残差符号为特定值(如0),则run-length值增加1,每当run-length达到延迟限制参数指示的延迟阈值时,编码run-length的值和当前待编码点的属性信息的残差,并将run-length置0,重新开始计数。若当前待编码点的属性信息的残差符号为非特定值(如非0),则计算机设备首先对run-length值进行编码,然后对当前待编码点的属性信息的残差进行编码,并将run-length置0,重新开始计数。
本申请实施例在图3实施例的基础上,一方面通过缓存限制参数和延迟限制参数中的一个或多个,来控制点云属性信息的编码过程;另一方面,支持多个待编码点,或者多个待编码点云分组的属性信息按照预设排列方式进行排列,提高了点云属性信息的编码性能。
请参阅图5,图5为本申请实施例提供的又一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的解码设备202。如图5所示,该点云处理方法可以包括以下步骤S501-步骤S503:
S501、获取点云中待解码点的编码码流。
待解码点的编码码流是由编码设备对待编码点进行编码得到的,具体可参见图3和图4中的实施例。点云中待解码点的编码码流可以是由计算机设备实时从编码设备中获取的,也可以是由计算机设备从已下载的编码码流中获取的。
S502、获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种。
计算机设备获取点云的限制参数包括以下任一种或多种:从编码码流中解析出已设置好为固定值的限制参数,从编码码流中解析出已设置好为可变值的限制参数,从编码码流中解析出已设置好的动态调整后的限制参数。可以理解的是,若编码码流中未解析到点云的限制 参数,则计算机设备确定点云的限制参数为默认值。通过多样的设置方式针对限制参数进行限制,可以根据实际需要对解码进行灵活的延迟控制,从而确保各种场景下点云属性信息的解码性能。
在一种实施方式中,当限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位。以点数为单位进行限制是指当以点数为单位进行解码时,限制待解码点的个数;以组数为单位进行限制是指当以组数为单位进行解码时,限制待解码的分组的组数。当限制参数为缓存限制参数时,解码限制点数阈值为缓存限制点数阈值;缓存限制参数的单位可以是点数,或者是组数。类似地,当限制参数为延迟限制参数时,解码限制点数阈值为延迟限制点数阈值;延迟限制参数的单位可以是点数,或者是组数。
在另一种实施方式中,当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位;其中,限制参数1以倍数为单位是指:当限制参数2以点数为单位限制待解码的点数的数量时,限制参数1以点数为单位限制待解码的点数的数量,且限制参数1是限制待解码的点数的数量是限制参数2限制待解码的点数的数量的倍数。当限制参数2以组数为单位限制待解码分组的数量时,限制参数1以组数为单位限制待解码分组的数量,且限制参数1是限制待解码分组的数量是限制参数2限制待解码分组的数量的倍数。
由上述可知,组合的方式包括:限制参数1和限制参数2均以点数为单位,或者以组数为单位;限制参数1以点数为单位,限制参数2以组数为单位,或者限制参数2以倍数为单位;限制参数1以组数为单位,限制参数2以点数为单位,或者限制参数2以倍数为单位。可以理解的是,上述限制参数1可以是缓存限制参数和延迟限制参数中的任一个,上述限制参数2是缓存限制参数和延迟限制参数中的另一个。通过限制参数包括参数种类数目,以及相应单位的灵活设置,可以可以根据实际需要对解码进行灵活的延迟控制,从而确保各种场景下点云属性信息的解码性能。
S503、对待解码点的编码码流进行解码,以及按照限制参数对解码过程进行控制。
解码方式包括行程解码,若编码设备以点数为单位进行编码,则计算机设备以点数为单位进行解码;若编码设备以组数为单位进行编码,则计算机设备以组数为单位进行解码。限制参数可以包括缓存限制参数和延迟限制参数中的至少一个。
在实现方式一中,计算机设备按照限制参数对解码过程进行控制的实施方式为:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;例如,若限制参数为缓存限制参数,则计算机设备根据缓存限制参数确定缓存中允许缓存的待解码点的数量阈值;若限制参数为延迟限制参数,则计算机设备根据延迟限制参数确定解码过程中允许延迟的待解码点的数量阈值。在行程解码的过程中,若计算机设备读取到限制标志位,则将第一行程长度的计数值设置为预设值(如限制点数阈值);若第一行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为特定值(如0),并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;计算机设备获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。本实施例中,在行程解码过程中,通过第一行程长度对解码按照限制点数阈值进行控制,可以确保点云属性信息的编解码性能。
在实现方式二中,计算机设备按照限制参数对解码过程进行控制的实施方式为:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值。在行程解码的过程中,从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零且等于限制点数阈值,则计算机设备将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;从编码码流中读取第二行程长度的计数值,若第二行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;获取在第二行程长度的计数值等于零时读取到的待解码点的中间系数并进 行解码。需要说明的是,第二行程长度是第一行程长度的下一个行程长度,若第二行程长度的计数值大于零且等于限制点数阈值,计算机设备将当前待解码点的中间系数设置为特定值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;从编码码流中读取第三行程长度的计数值,并继续进行判断。也就是说,如果读取到的行程长度的计数值大于零且等于限制点数阈值,则在该行程长度的计数值为0时,计算机设备会继续读取下一个行程长度的计数值;如果读取到的行程长度的计数值大于零且不等于限制点数阈值,则在该行程长度的计数值为0时,计算机设备会获取在该行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。本实施例中,在行程解码过程中,通过第一行程长度和第二行程长度对解码按照限制点数阈值进行控制,可以确保点云属性信息的编解码性能。
在实现方式三中,在行程解码的过程中,计算机设备从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零,则计算机设备将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。需要说明的是,在本实现方式中,在第一行程长度的计数值等于零时读取到的待解码点的中间系数可能为特定值,在一种可能的实现方式中,值为特定值的中间系数可以累加多个行程长度。本实施例中,在行程解码过程中,对于计数值为0时读取的中间系数进行解码,可以确保点云属性信息的编解码性能。
可以理解的是,以组为单位进行编码的方式下,解码流程与上述实现方式一至实现方式三类似。存在的区别之处在于,当限制参数为缓存限制参数时,计算机设备在将读取的点云分组的中间参数进行缓存后,还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列,再按照上述实现方式一至实现方式三进行解码。
在一种实施方式中,解码方式为以点数为单位的解码方式,即将点云中的一个点作为基本解码单位进行解码。计算机设备对待解码点的编码码流进行解码的具体实现方式为:对待解码点的编码码流进行解析,得到待解码点的中间系数,中间系数包括残差或变换系数,计算机设备将待解码点的中间系数写入至缓存中,并从缓存中读取待解码点的中间系数进行解码。在解码过程中,计算机设备可以基于限制参数对解码过程进行控制;例如,计算机设备可以基于延迟限制参数对解码过程进行控制;又例如,计算机设备可以基于缓存限制参数对解码过程进行控制;再例如,计算机设备可以基于缓存限制参数和延迟限制参数对解码过程进行控制。计算机设备对编码码流进行解码的具体实施方式可参考上述点云解码的实施方式。本实施例中,以点数为单位针对待解码点的属性信息进行转换处理,将得到的中间系数写入至缓存中,以从缓存中读取中间系数进行解码,可以对点云解码过程进行延迟控制,能够避免点云解码等待时间过长,有利于提高点云属性信息的编解码性能。
在另一种实施方式中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备对待解码点的编码码流进行解码的具体实现方式为:对待解码点的编码码流进行解析,得到多组点云分组,每组点云分组中包含待解码点的中间系数,中间系数包括残差或变换系数,计算机设备将点云分组写入至缓存中,并从缓存中依次读取点云分组中的待解码点的中间系数进行解码。在解码过程中,计算机设备可以基于限制参数对解码过程进行控制;例如,计算机设备可以基于延迟限制参数对解码过程进行控制;又例如,计算机设备可以基于缓存限制参数对解码过程进行控制;再例如,计算机设备可以基于缓存限制参数和延迟限制参数对解码过程进行控制。计算机设备对编码码流进行解码的具体实施方式可参考上述点云解码的实施方式。本实施例中,以组数为单位针对待解码点的属性信息进行转换处理,将得到的中间系数写入至缓存中,以从缓存中读取中间系数进行解码,可以对点云解码过程进行延迟控制,能够避免点云解码等待时间过长,有利于提高点云属性信息的编解码性能。
本申请实施例中,当需要对点云中的待解码点进行解码处理时,可以获取点云中待解码点的编码码流和点云的限制参数,对待解码点的编码码流进行解码,以及按照限制参数对解 码过程进行控制。本申请实施例通过获取点云的限制参数,使得待解码点的属性信息解码过程可控,进而提高点云属性信息的解码性能。
请参阅图6,图6为本申请实施例提供的再一种点云处理方法,该点云处理方法可以由计算机设备执行,该计算机设备具体可以是图2所示的点云处理系统20中的解码设备202。如图5所示,该点云处理方法可以包括以下步骤S601-步骤S605:
S601、获取点云中待解码点的编码码流。
S602、获取点云的限制参数。
步骤S601和步骤S602的具体实施方式可参考图5中步骤S501和步骤S502的实施方式。
当限制参数为缓存限制参数时,继续执行步骤S603;当限制参数为延迟限制参数时,继续执行步骤S604;当限制参数包括缓存限制参数和延迟限制参数时,继续执行步骤S605。
S603、对待解码点的属性信息进行解码,以及按照缓存限制参数对解码过程中的缓存逻辑进行控制。
通过缓存限制参数对缓存中允许写入的待解码点的数量进行控制,使得待解码点的属性信息解码过程可控,能够避免点云解码等待时间过长,进而提高点云属性信息的解码性能。在一种实施方式中,缓存限制参数用于限制缓存中允许写入的待解码点的数量,每个待解码点可以包括一个或多个中间系数。计算机设备根据缓存限制参数确定缓存限制点数阈值,每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,计算机设备从缓存中读取待解码点的中间系数进行解码。本实施例中,通过缓存限制参数确定的缓存限制点数阈值,对缓存中允许写入的待解码点的数量进行控制,在缓存中允许写入的待解码点的数量达到缓存限制点数阈值时触发进行解码,能够避免点云解码等待时间过长,进而提高点云属性信息的解码性能。
在一个实施例中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备统计缓存中每组点云分组中包含的待解码点的总点数,当缓存中存储的分组数量为M,且这M组点云分组包含的待解码点的总点数达到缓存限制点数阈值时,计算机设备从缓存中读取这M组点云分组中包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。本实施例中,在以组数为单位进行解码时,通过缓存限制点数阈值控制所有点云分组中待解码点的总点数,以对待解码点的属性信息解码过程进行延迟控制,有利于提高点云属性信息的解码性能。
在另一个实施例中,解码方式为以组数为单位的解码方式,即将点云中的一个分组作为基本解码单位进行解码。计算机设备统计缓存中每组点云分组中包含的目标待解码点的总点数,每组点云分组中目标待解码点的数量小于等于每组点云分组的点数限制阈值,若缓存中包括M组点云分组,且M组点云分组包含的目标待解码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。本实施例中,在以组数为单位进行解码时,通过点数限制阈值控制每个点云分组中待解码点的点数,通过缓存限制点数阈值控制所有点云分组中待解码点的总点数,以对待解码点的属性信息解码过程进行延迟控制,有利于提高点云属性信息的解码性能。
在另一种实施方式中,解码方式为以组数为单位的解码方式,即将点云中的一个分组(一个分组中可以包括点云中的至少一个点)作为基本解码单位进行解码。计算机设备统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待解码点的总点数;例如,设M=64,点数限制阈值为8,则缓存中包含的待解码点的总点数=64*8=512。若缓存中包含的待解码点的总点数达到缓存限制点数阈值,则计算机设备控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。进一步地,计算机设备清空缓存,并继续将待解码点的中间系数写入缓存中。本实施例中,在以组数为单位进行解码时,通过组数阈值对缓存中允许写入的点云分组的数量进行延迟控制,有利于提高点云属性信息的解码性 能,
在一个实施例中,在解码过程中,计算机设备还可以获取缓存中的点云分组的预设排列方式。其中,预设排列方式包括以下任一种:固定排列方式和动态排列方式;固定排列方式是指每次缓存的点云分组的中间系数排列方式(如按照相似度、按照分组中包含的待编码点的点数等)相同,动态排列方式是指缓存的点云分组的中间系数排列方式存在变化;例如,第一次缓存的点云分组的中间系数排列方式与第二次缓存的点云分组的中间系数排列方式相同,且第三次缓存的点云分组的中间系数排列方式不同。本实施例中,通过固定排列方式和动态排列方式中的任一种排列方式将缓存中写入的点云分组进行排列,能够确保点云的有序解码,有利于提高针对解码码流的解码处理效率。计算机设备获取缓存中的点云分组的预设排列方式的具体实现方式为:每种排列方式对应一个索引值,计算机设备可以从编码码流中解析索引值,并根据该索引值确定点云分组的排列方式。本实施例中,通过将点云分组的中间系数排列方式对应的索引值写入至解码码流中,便于基于索引值对解码码流进行解码,有利于提高针对解码码流的解码处理效率。
S604、对待解码点的属性信息进行解码,以及按照延迟限制参数对解码过程中的延迟逻辑进行控制。
步骤S604的具体实施方式可参考图5中步骤S503的实施方式。通过延迟限制参数对待解码点的数量进行延迟控制,使得待解码点的属性信息解码过程可控,能够避免点云解码等待时间过长,进而提高点云属性信息的解码性能。
S605、对待解码点的属性信息进行解码,以及按照缓存限制参数和延迟限制参数对解码过程中的解码逻辑进行控制。
通过缓存限制参数和延迟限制参数对待解码点的数量进行延迟控制,使得待解码点的属性信息解码过程可控,能够避免点云解码等待时间过长,进而提高点云属性信息的解码性能。在一种实施方式中,缓存限制参数和延迟限制参数相互独立。计算机设备首先按照延迟限制参数,将待解码点的中间参数,或者点云分组的中间参数读取到缓存中;具体的实施方式可参考步骤S604中的实施方式。若编码设备以组为单位进行编码,则在将读取的点云分组的中间参数进行缓存后,计算机设备还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列。然后计算机设备可以按照延迟限制参数对解码过程中的解码逻辑进行控制;具体的实施方式可参考步骤S503中的实施方式。
在另一种实施方式中,缓存限制参数和延迟限制参数相互关联;也就是说,缓存限制参数基于延迟限制参数确定,或者延迟限制参数基于缓存限制参数确定。计算机设备首先按照延迟限制参数,将待解码点的中间参数,或者点云分组的中间参数读取到缓存中;具体的实施方式可参考步骤S604中的实施方式。若编码设备以组为单位进行编码,则在将读取的点云分组的中间参数进行缓存后,计算机设备还可以按获取的排列方式对缓存中各点云分组的中间系数进行排列。然后计算机设备可以按照延迟限制参数对解码过程中的解码逻辑进行控制;具体的实施方式可参考步骤S503中的实施方式。
本申请实施例在图5实施例的基础上,一方面通过缓存限制参数和延迟限制参数中的一个或多个,来控制点云属性信息的解码过程;另一方面,支持多个待解码点,或者多个待解码点云分组的属性信息按照编码码流指示的排列方式进行排列,提高了点云属性信息的解码性能。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图7,图7为本申请实施例提供的一种点云处理装置的结构示意图;该点云处理装置可以是运行于编码设备中的一个计算机可读指令(包括程序代码),例如该点云处理装置可以是编码设备中的一个应用软件。由图7所示,该点云处理装置包括设置单元701,获取单元702和处理单元703。请参见图7,各个单元的详细描述如下:
设置单元701,用于设置点云的限制参数,限制参数包括缓存限制参数和延迟限制参数 中的一种或两种;
获取单元702,用于获取点云中待编码点的属性信息;及
处理单元703,用于对待编码点的属性信息进行编码;以及,按照限制参数对编码过程进行控制。
在一种实施方式中,编码的编码方式包括以点数为单位的编码方式;处理单元703用于,对待编码点的属性信息进行编码,具体用于:对待编码点的属性信息进行转换处理,得到待编码点的中间系数;中间系数包括残差或变换系数;将待编码点的中间系数写入至缓存中;及从缓存中读取待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,对待编码点的属性信息进行编码,具体用于:对待编码点的属性信息进行分组处理,得到多组点云分组;对点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组,转换后的点云分组中包含待编码点的中间系数;中间系数包括残差或变换系数;将转换后的点云分组写入至缓存中;及从缓存中依次读取转换后的点云分组中的待编码点的中间系数进行编码。
在一种实施方式中,限制参数包括缓存限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:按照缓存限制参数对编码过程中的缓存逻辑进行控制。
在一种实施方式中,处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待编码点的数量阈值;及每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,每当缓存中写入的待编码点的数量达到缓存限制点数阈值时,控制从缓存中读取待编码点的中间系数进行编码,具体用于:统计缓存中每组点云分组中包含的待编码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码;或者,统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待编码点的中间系数进行编码。
在一种实施方式中,编码的编码方式包括以组数为单位的编码方式;处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;及每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待编码点的中间系数进行编码。
在一种实施方式中,处理单元703还用于:按照预设排列方式对缓存中写入的点云分组进行排列;预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
在一种实施方式中,每种排列方式对应一个索引值;处理单元703还用于:将缓存中点云分组的中间系数排列方式对应的索引值写入至编码形成的编码码流中。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照缓存限制参数对编码过程中的缓存逻辑进行控制,具体用于:根据缓存限制参数确定缓存中允许写入的待编码点的缓存限制点数阈值,缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;在行程编码过程中,设置用于对连续特定符号进行计数的行程长度;及将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若读取的待编码点的数量等于缓存限制点数阈值,则对当前行程长度进行编码,或者对缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为初始值以重新计数;若读取到值为非特定符号的 待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
在一种实施方式中,限制参数包括延迟限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:按照延迟限制参数对编码过程中的延迟逻辑进行控制。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照延迟限制参数对编码过程中的延迟逻辑进行控制,具体用于:根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;及将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;获取行程长度的计数值,若行程长度的计数值达到延迟限制点数阈值,则进行参数编码处理,并将行程长度重置为初始值以重新计数;若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数;其中,参数编码处理是指:对当前行程长度进行编码;或者,对限制标识符进行编码,限制标识符用于将行程长度设置为预设值;或者,对延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。
在一种实施方式中,编码包括行程编码;处理单元703用于,按照延迟限制参数对编码过程中的延迟逻辑进行控制,具体用于:根据延迟限制参数确定延迟限制点数阈值,延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;在行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;及将行程长度设置为初始值,在从缓存中顺序读取待编码点的中间系数的过程中:若读取到值为特定符号的中间系数,则行程长度的计数值增加一个步长;若待编码点的数量达到延迟限制点数阈值,则对当前行程长度进行编码,或者对延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为初始值以重新计数;若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及非特定符号的中间系数进行编码,并将行程长度重置为初始值以重新计数。
在一种实施方式中,延迟限制参数用于确定延迟限制点数阈值;编码包括行程编码,行程编码中的行程长度小于或等于延迟限制点数阈值;处理单元703还用于:按照延迟限制点数阈值设置行程长度的比特位数。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理单元703用于,按照限制参数对编码过程进行控制,具体用于:按照缓存限制参数和延迟限制参数对编码过程中的编码逻辑进行控制。
在一种实施方式中,限制参数的设置方式包括以下任一种或多种:将限制参数设置为默认值;将限制参数设置为固定值,并将设置好的限制参数封装至编码形成的编码码流中;将限制参数设置为可变值,并将设置好的限制参数封装至编码形成的编码码流中;在编码过程中动态调整限制参数的值,并将动态调整后的限制参数封装至编码形成的编码码流中。
在一种实施方式中,当限制参数仅包含一种参数时,限制参数的单位包括以下任一种:以点数为单位,以组数为单位;当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
在一种实施方式中,限制参数用于确定编码限制点数阈值;若限制参数为缓存限制参数,则编码限制点数阈值为缓存限制点数阈值;若限制参数为延迟限制参数,则编码限制点数阈值为延迟限制点数阈值;若限制参数以点数为单位,且限制参数的值为X1,则编码限制点数阈值为X1个待编码点的中间系数的实际总数量;若限制参数以组数为单位,且限制参数的值为X2,则编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;若限制参数以组数为单位,且限制参数的值为X3,并且每组点云分组的点数限制为X4,则编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,总数量不超过X3*X4的值。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数两种参数;缓存限制参 数用于确定缓存限制点数阈值;延迟限制参数用于确定延迟限制点数阈值;若缓存限制参数以倍数关系为单位,且缓存限制参数的值为Y1,则缓存限制点数阈值是延迟限制点数阈值的Y1倍;若延迟限制参数以倍数关系为单位,且延迟限制参数的值为Y2,则延迟限制点数阈值是缓存限制点数阈值的Y2倍。
根据本申请的一个实施例,图3和图4所示的点云处理方法所涉及的部分步骤可由图7所示的点云处理装置中的各个单元来执行。例如,图3中所示的步骤S301可由图7所示的设置单元701执行,步骤S302可由图7所示的获取单元702执行,步骤S303可由图7所示的处理单元703执行。图4中所示的步骤S401可由图7所示的设置单元701执行,步骤S402可由图7所示的获取单元702执行,步骤S403-步骤S405可由图7所示的处理单元703执行。图7所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图3和图4中所示的相应方法所涉及的各步骤的计算机可读指令(包括程序代码),来构造如图7中所示的点云处理装置,以及来实现本申请实施例的点云处理方法。计算机可读指令可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的点云处理装置解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参见图8,图8为本申请实施例提供的另一种点云处理装置的结构示意图;该点云处理装置可以是运行于解码设备中的一个计算机可读指令(包括程序代码),例如该点云处理装置可以是解码设备中的一个应用软件。由图8所示,该点云处理装置包括获取单元801和处理单元802。请参见图8,各个单元的详细描述如下:
获取单元801,用于获取点云中待解码点的编码码流,以及,获取点云的限制参数,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;及
处理单元802,用于对待解码点的编码码流进行解码;以及,按照限制参数对解码过程进行控制。
在一种实施方式中,获取单元801获取点云的限制参数包括以下任一种或多种:将限制参数设置为默认值;从编码码流中解析出已设置好为固定值的限制参数;从编码码流中解析出已设置好为可变值的限制参数;从编码码流中解析出已设置好的动态调整后的限制参数。
在一种实施方式中,解码的解码方式包括以点数为单位的解码方式;处理单元802用于,对待解码点的编码码流进行解码,具体用于:对待解码点的编码码流进行解析,得到待解码点的中间系数;中间系数包括残差或变换系数;将待解码点的中间系数写入至缓存中;从缓存中读取待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,对待解码点的编码码流进行解码,具体用于:对待解码点的编码码流进行解析,得到多组点云分组,点云分组中包含待解码点的中间系数;中间系数包括残差或变换系数;将点云分组写入至缓存中;及从缓存中依次读取点云分组中的待解码点的中间系数进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;在行程解码的过程中,若读取到限制标志位,则将第一行程长度的计数值设置为 预设值;若第一行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;及获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:根据限制参数确定限制点数阈值,限制点数阈值用于限制待解码点的数量阈值;在行程解码的过程中,从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零且等于限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;从编码码流中读取第二行程长度的计数值,若第二行程长度的计数值大于零且不等于限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将第二行程长度的计数值减少一个步长,直到第二行程长度的计数值等于零为止;及获取在第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,解码包括行程解码;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:在行程解码的过程中,从编码码流中读取第一行程长度的计数值;若第一行程长度的计数值大于零,则将当前待解码点的中间系数设置为特定值,并将第一行程长度的计数值减少一个步长,直到第一行程长度的计数值等于零为止;及获取在第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
在一种实施方式中,限制参数包括缓存限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:按照缓存限制参数对解码过程中的缓存逻辑进行控制。
在一种实施方式中,处理单元802用于,按照缓存限制参数对解码过程中的缓存逻辑进行控制,具体用于:根据缓存限制参数确定缓存限制点数阈值,缓存限制点数阈值用于限制缓存中允许写入的待解码点的数量阈值;及每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,每当缓存中写入的待解码点的数量达到缓存限制点数阈值时,控制从缓存中读取待解码点的中间系数进行解码,具体用于:统计缓存中每组点云分组中包含的待解码点的总点数,若缓存中包括M组点云分组,且M组点云分组包含的待解码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码;或者,统计缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算缓存中包含的待编码点的总点数,若缓存中包含的待编码点的总点数达到缓存限制点数阈值,则控制从缓存中读取M组点云分组包含的待解码点的中间系数进行解码。
在一种实施方式中,解码的解码方式包括以组数为单位的解码方式;处理单元802用于,按照缓存限制参数对解码过程中的缓存逻辑进行控制,具体用于:根据缓存限制参数确定缓存中允许写入的点云分组的组数阈值;及每当缓存中写入的点云分组的数量达到组数阈值时,控制从缓存中读取缓存中写入的点云分组包含的待解码点的中间系数进行解码。
在一种实施方式中,处理单元802还用于:按照预设排列方式对缓存中写入的点云分组进行排列;预设排列方式包括以下任一种:固定排列方式,动态排列方式;固定排列方式是指缓存中点云分组的中间系数排列方式固定,动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
在一种实施方式中,每种排列方式对应一个索引值;处理单元802还用于:从编码码流中解析出索引值,并根据索引值确定缓存中的点云分组的排列方式。
在一种实施方式中,限制参数包括延迟限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:按照延迟限制参数对解码过程中的延迟逻辑进行控制。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数;处理单元802用于,按照限制参数对解码过程进行控制,具体用于:按照缓存限制参数和延迟限制参数对解码过 程中的解码逻辑进行控制。
在一种实施方式中,限制参数包括缓存限制参数和延迟限制参数中的一种或两种;当限制参数仅包含一种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位;当限制参数包含两种参数时,限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
根据本申请的一个实施例,图5和图6所示的点云处理方法所涉及的部分步骤可由图8所示的点云处理装置中的各个单元来执行。例如,图5中所示的步骤S501和步骤S502可由图8所示的获取单元801执行,步骤S503可由图8所示的处理单元802执行。图6中所示的步骤S601和步骤S602可由图8所示的获取单元801执行,步骤S603-步骤S605可由图8所示的处理单元802执行。图8所示的点云处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,点云处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图5和图6中所示的相应方法所涉及的各步骤的计算机可读指令(包括程序代码),来构造如图8中所示的点云处理装置,以及来实现本申请实施例的点云处理方法。计算机可读指令可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的点云处理装置解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
图9为本申请实施例提供的一种编码设备的结构示意图;该编码设备可以是指点云媒体的提供者所使用的计算机设备,该计算机设备可以是终端(如PC、智能移动设备(如智能手机)等)或服务器。如图9所示,该编码设备包括捕获设备901、处理器902、存储器903和发射器904。其中:
捕获设备901用于采集现实世界的声音-视觉场景获得点云媒体的原始数据(包括在时间和空间上保持同步的音频内容和视频内容)。该捕获设备901可以包括但不限于:音频设备、摄像设备及传感设备。其中,音频设备可以包括音频传感器、麦克风等。摄像设备可以包括普通摄像头、立体摄像头、光场摄像头等。传感设备可以包括激光设备、雷达设备等。
处理器902(或称CPU(Central Processing Unit,中央处理器))是编码设备的处理核心,该处理器902适于实现一条或多条计算机可读指令,具体适于加载并执行一条或多条计算机可读指令从而实现图3和图4所示的点云处理方法的流程。
存储器903是编码设备中的记忆设备,用于存放计算机可读指令和媒体资源。可以理解的是,此处的存储器903既可以包括编码设备中的内置存储介质,当然也可以包括编码设备所支持的扩展存储介质。需要说明的是,存储器可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器提供存储空间,该存储空间用于存储编码设备的操作系统。并且,在该存储空间中还用于存储计算机可读指令,该计算机可读指令包括程序指令,且该程序指令适于被处理器调用并执行,以用来执行点云处理方法的各步骤。另外,存储器903还可用于存储经处理器处理后形成的点云媒体文件,该点云媒体文件包括媒体文件资源和媒体呈现描述信息。
发射器904用于实现编码设备与其他设备的传输交互,具体用于实现编码设备与内容播放设备之间关于进行点云媒体的传输。即编码设备通过发射器904来向内容播放设备传输点 云媒体的相关媒体资源。
再请参见图9,处理器902可包括转换器921、编码器922和封装器923;其中:
转换器921用于对捕获到的视频内容进行一系列转换处理,使视频内容成为适合被执行点云媒体的视频编码的内容。转换处理可包括:拼接和投影,可选地,转换处理还包括区域封装。转换器921可以将捕获到的3D视频内容转换为2D图像,并提供给编码器进行视频编码。
编码器922用于对捕获到的音频内容进行音频编码形成点云媒体的音频码流。还用于对转换器921转换得到的2D图像进行视频编码,得到视频码流。
封装器923用于将音频码流和视频码流按照点云媒体的文件格式(如ISOBMFF)封装在文件容器中形成点云媒体的媒体文件资源,该媒体文件资源可以是媒体文件或媒体片段形成点云媒体的媒体文件;并按照点云媒体的文件格式要求采用媒体呈现描述信息记录该点云媒体的媒体文件资源的元数据。封装器处理得到的点云媒体的封装文件会保存在存储器中,并按需提供给内容播放设备进行点云媒体的呈现。
处理器902(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图3和图4所示的点云处理方法的各步骤。具体地,存储器903存储有一条或多条第一指令,该一条或多条第一指令适于由处理器902加载并执行如上各实施例中记载的点云处理方法。
基于同一发明构思,本申请实施例中提供的编码设备解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
图10为本申请实施例提供的一种解码设备的结构示意图;该解码设备可以是指点云媒体的使用者所使用的计算机设备,该计算机设备可以是终端(如PC、智能移动设备(如智能手机)、VR设备(如VR头盔、VR眼镜等))。如图10所示,该解码设备包括接收器1001、处理器1002、存储器1003、显示/播放装置1004。其中:
接收器1001用于实现解码与其他设备的传输交互,具体用于实现编码设备与解码设备之间关于进行点云媒体的传输。即解码设备通过接收器1001来接收编码设备传输点云媒体的相关媒体资源。
处理器1002(或称CPU(Central Processing Unit,中央处理器))是编码设备的处理核心,该处理器1002适于实现一条或多条计算机可读指令,具体适于加载并执行一条或多条计算机可读指令从而实现图5和图6所示的点云处理方法的流程。
存储器1003是解码设备中的记忆设备,用于存放计算机可读指令和媒体资源。可以理解的是,此处的存储器1003既可以包括解码设备中的内置存储介质,当然也可以包括解码设备所支持的扩展存储介质。需要说明的是,存储器1003可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的存储器。存储器1003提供存储空间,该存储空间用于存储解码设备的操作系统。并且,在该存储空间中还用于存储计算机可读指令,该计算机可读指令包括计算机可读指令,且该计算机可读指令适于被处理器调用并执行,以用来执行点云处理方法的各步骤。另外,存储器1003还可用于存储经处理器处理后形成的点云媒体的三维图像、三维图像对应的音频内容及该三维图像和音频内容渲染所需的信息等。显示/播放装置1004用于输出渲染得到的声音和三维图像。
再请参见图10,处理器1002可包括解析器1021、解码器1022、转换器1023和渲染器1024;其中:
解析器1021用于对来自编码设备的渲染媒体的封装文件进行文件解封装,具体是按照点云媒体的文件格式要求对媒体文件资源进行解封装,得到音频码流和视频码流;并将该音频码流和视频码流提供给解码器1022。
解码器1022对音频码流进行音频解码,得到音频内容并提供给渲染器进行音频渲染。另外,解码器1022对视频码流进行解码得到2D图像。根据媒体呈现描述信息提供的元数据, 如果该元数据指示点云媒体执行过区域封装过程,该2D图像是指封装图像;如果该元数据指示点云媒体未执行过区域封装过程,则该平面图像是指投影图像。
转换器1023用于将2D图像转换为3D图像。如果点云媒体执行过区域封装过程,转换器1023还会先将封装图像进行区域解封装得到投影图像。再对投影图像进行重建处理得到3D图像。如果渲染媒体未执行过区域封装过程,转换器1023会直接将投影图像重建得到3D图像。
渲染器1024用于对点云媒体的音频内容和3D图像进行渲染。具体根据媒体呈现描述信息中与渲染、视窗相关的元数据对音频内容及3D图像进行渲染,渲染完成交由显示/播放装置进行输出。
在一个示例性实施例中,处理器1002(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图5和图6所示的点云处理方法的各步骤。具体地,存储器存储有一条或多条第一指令,该一条或多条第一指令适于由处理器1002加载并执行如上各实施例中记载的点云处理方法。
基于同一发明构思,本申请实施例中提供的解码设备解决问题的原理与有益效果与本申请方法实施例中点云处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一条或多条计算机可读指令,一条或多条计算机可读指令适于由处理器加载并执行上述方法实施例的点云处理方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例的点云处理方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机可读指令,该计算机可读指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机可读指令,处理器执行该计算机指令,使得该计算机设备执行上述的点云处理方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。

Claims (40)

  1. 一种点云处理方法,由计算机设备执行,其特征在于,包括:
    设置点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
    获取所述点云中待编码点的属性信息;
    对所述待编码点的属性信息进行编码;以及,
    按照所述限制参数对所述编码过程进行控制。
  2. 如权利要求1所述的方法,其特征在于,所述编码的编码方式包括以点数为单位的编码方式;所述对所述待编码点的属性信息进行编码,包括:
    对所述待编码点的属性信息进行转换处理,得到所述待编码点的中间系数;所述中间系数包括残差或变换系数;
    将所述待编码点的中间系数写入至缓存中;及
    从所述缓存中读取所述待编码点的中间系数进行编码。
  3. 如权利要求1所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述对所述待编码点的属性信息进行编码,包括:
    对所述待编码点的属性信息进行分组处理,得到多组点云分组;
    对所述点云分组中的待编码点的属性信息进行转换处理,得到转换后的点云分组,所述转换后的点云分组中包含所述待编码点的中间系数;所述中间系数包括残差或变换系数;
    将所述转换后的点云分组写入至缓存中;及
    从所述缓存中依次读取所述转换后的点云分组中的待编码点的中间系数进行编码。
  4. 如权利要求2或3所述的方法,其特征在于,所述限制参数包括缓存限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
    按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制。
  5. 如权利要求4所述的方法,其特征在于,所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
    根据所述缓存限制参数确定缓存限制点数阈值,所述缓存限制点数阈值用于限制所述缓存中允许写入的待编码点的数量阈值;及
    每当所述缓存中写入的待编码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待编码点的中间系数进行编码。
  6. 如权利要求5所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述每当所述缓存中写入的待编码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待编码点的中间系数进行编码,包括:
    统计所述缓存中每组点云分组中包含的待编码点的总点数,若所述缓存中包括M组点云分组,且所述M组点云分组包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待编码点的中间系数进行编码;或者,
    统计所述缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算所述缓存中包含的待编码点的总点数,若所述缓存中包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待编码点的中间系数进行编码。
  7. 如权利要求4所述的方法,其特征在于,所述编码的编码方式包括以组数为单位的编码方式;所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
    根据所述缓存限制参数确定所述缓存中允许写入的点云分组的组数阈值;及
    每当所述缓存中写入的点云分组的数量达到所述组数阈值时,控制从所述缓存中读取所述缓存中写入的点云分组包含的待编码点的中间系数进行编码。
  8. 如权利要求7所述的方法,其特征在于,所述方法还包括:
    按照预设排列方式对所述缓存中写入的点云分组进行排列;
    所述预设排列方式包括以下任一种:固定排列方式,动态排列方式;所述固定排列方式是指缓存中点云分组的中间系数排列方式固定,所述动态排列方式是指缓存中点云分组的中 间系数排列方式存在变化。
  9. 如权利要求8所述的方法,其特征在于,每种所述排列方式对应一个索引值;所述方法进一步包括:
    将所述缓存中点云分组的中间系数排列方式对应的索引值写入至所述编码形成的编码码流中。
  10. 如权利要求4所述的方法,其特征在于,所述编码包括行程编码;所述按照所述缓存限制参数对所述编码过程中的缓存逻辑进行控制,包括:
    根据所述缓存限制参数确定所述缓存中允许写入的待编码点的缓存限制点数阈值,所述缓存限制点数阈值用于限制编码过程中允许写入缓存的待编码点的数量阈值;
    在行程编码过程中,设置用于对连续特定符号进行计数的行程长度;及
    将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
    若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;若读取的待编码点的数量等于所述缓存限制点数阈值,则对当前行程长度进行编码,或者对所述缓存限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度设置为所述初始值以重新计数;
    若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数。
  11. 如权利要求2或3所述的方法,其特征在于,所述限制参数包括延迟限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
    按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制。
  12. 如权利要求11所述的方法,其特征在于,所述编码包括行程编码;所述按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制,包括:
    根据所述延迟限制参数确定延迟限制点数阈值,所述延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
    在所述行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;及
    将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
    若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;获取所述行程长度的计数值,若所述行程长度的计数值达到所述延迟限制点数阈值,则进行参数编码处理,并将行程长度重置为所述初始值以重新计数;
    若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数;
    其中,所述参数编码处理是指:对当前行程长度进行编码;或者,对限制标识符进行编码,所述限制标识符用于将所述行程长度设置为预设值;或者,对所述延迟限制点数阈值,以及值为特定符号的待编码点的中间系数进行编码。
  13. 如权利要求11所述的方法,其特征在于,所述编码包括行程编码;所述按照所述延迟限制参数对所述编码过程中的延迟逻辑进行控制,包括:
    根据所述延迟限制参数确定延迟限制点数阈值,所述延迟限制点数阈值用于限制编码过程中允许延迟的待编码点的数量阈值;
    在所述行程编码的过程中,设置用于对连续特定符号进行计数的行程长度;及
    将所述行程长度设置为初始值,在从所述缓存中顺序读取待编码点的中间系数的过程中:
    若读取到值为特定符号的中间系数,则所述行程长度的计数值增加一个步长;若待编码点的数量达到所述延迟限制点数阈值,则对当前行程长度进行编码,或者对所述延迟限制点数阈值和值为特定符号的待编码点的中间系数进行编码,并将行程长度重置为所述初始值以重新计数;
    若读取到值为非特定符号的待编码点的中间系数,则对当前行程长度及所述非特定符号的中间系数进行编码,并将行程长度重置为所述初始值以重新计数。
  14. 如权利要求11所述的方法,其特征在于,所述延迟限制参数用于确定延迟限制点数阈值;所述编码包括行程编码,所述行程编码中的行程长度小于或等于所述延迟限制点数阈值;所述方法还包括:
    按照所述延迟限制点数阈值设置所述行程长度的比特位数。
  15. 如权利要求2或3所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数;所述按照所述限制参数对所述编码过程进行控制,包括:
    按照所述缓存限制参数和所述延迟限制参数对所述编码过程中的编码逻辑进行控制。
  16. 如权利要求1所述的方法,其特征在于,所述限制参数的设置方式包括以下任一种或多种:
    将所述限制参数设置为默认值;
    将所述限制参数设置为固定值,并将设置好的所述限制参数封装至所述编码形成的编码码流中;
    将所述限制参数设置为可变值,并将设置好的所述限制参数封装至所述编码形成的编码码流中;
    在所述编码过程中动态调整所述限制参数的值,并将动态调整后的限制参数封装至所述编码形成的编码码流中。
  17. 如权利要求1所述的方法,其特征在于,当所述限制参数仅包含一种参数时,所述限制参数的单位包括以下任一种:以点数为单位,以组数为单位;
    当所述限制参数包含两种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
  18. 如权利要求17所述的方法,其特征在于,所述限制参数用于确定编码限制点数阈值;若所述限制参数为缓存限制参数,则所述编码限制点数阈值为缓存限制点数阈值;若所述限制参数为延迟限制参数,则所述编码限制点数阈值为延迟限制点数阈值;
    若所述限制参数以点数为单位,且所述限制参数的值为X1,则所述编码限制点数阈值为X1个待编码点的中间系数的实际总数量;
    若所述限制参数以组数为单位,且所述限制参数的值为X2,则所述编码限制点数阈值为X2组点云分组中的待编码点的中间系数的实际总数量;
    若所述限制参数以组数为单位,且所述限制参数的值为X3,并且每组点云分组的点数限制为X4,则所述编码限制点数阈值为X3组点云分组中的待编码点的中间系数的总数量,所述总数量不超过X3*X4的值。
  19. 如权利要求17所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数两种参数;所述缓存限制参数用于确定缓存限制点数阈值;所述延迟限制参数用于确定延迟限制点数阈值;
    若所述缓存限制参数以倍数关系为单位,且所述缓存限制参数的值为Y1,则所述缓存限制点数阈值是所述延迟限制点数阈值的Y1倍;
    若所述延迟限制参数以倍数关系为单位,且所述延迟限制参数的值为Y2,则所述延迟限制点数阈值是所述缓存限制点数阈值的Y2倍。
  20. 一种点云处理方法,由计算机设备执行,其特征在于,包括:
    获取点云中待解码点的编码码流;
    获取所述点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
    对所述待解码点的编码码流进行解码;以及,
    按照所述限制参数对所述解码过程进行控制。
  21. 如权利要求20所述的方法,其特征在于,所述获取所述点云的限制参数包括以下任一种或多种:
    将所述限制参数设置为默认值;
    从所述编码码流中解析出已设置好为固定值的限制参数;
    从所述编码码流中解析出已设置好为可变值的限制参数;
    从所述编码码流中解析出已设置好的动态调整后的限制参数。
  22. 如权利要求20所述的方法,其特征在于,所述解码的解码方式包括以点数为单位的解码方式;所述对所述待解码点的编码码流进行解码,包括:
    对所述待解码点的编码码流进行解析,得到所述待解码点的中间系数;所述中间系数包括残差或变换系数;
    将所述待解码点的中间系数写入至缓存中;及
    从所述缓存中读取所述待解码点的中间系数进行解码。
  23. 如权利要求20所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述对所述待解码点的编码码流进行解码,包括:
    对所述待解码点的编码码流进行解析,得到多组点云分组,所述点云分组中包含所述待解码点的中间系数;所述中间系数包括残差或变换系数;
    将所述点云分组写入至缓存中;及
    从所述缓存中依次读取所述点云分组中的待解码点的中间系数进行解码。
  24. 如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
    根据所述限制参数确定限制点数阈值,所述限制点数阈值用于限制待解码点的数量阈值;
    在所述行程解码的过程中,若读取到限制标志位,则将第一行程长度的计数值设置为预设值;
    若所述第一行程长度的计数值大于零且不等于所述限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;及
    获取在所述第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
  25. 如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
    根据所述限制参数确定限制点数阈值,所述限制点数阈值用于限制待解码点的数量阈值;
    在所述行程解码的过程中,从所述编码码流中读取第一行程长度的计数值;
    若所述第一行程长度的计数值大于零且等于所述限制点数阈值,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;
    从所述编码码流中读取第二行程长度的计数值,若所述第二行程长度的计数值大于零且不等于所述限制点数阈值,则将当前待解码点的中间系数设置为预设值,并将所述第二行程长度的计数值减少一个步长,直到所述第二行程长度的计数值等于零为止;及
    获取在所述第二行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
  26. 如权利要求20所述的方法,其特征在于,所述解码包括行程解码;所述按照所述限制参数对所述解码过程进行控制,包括:
    在所述行程解码的过程中,从所述编码码流中读取第一行程长度的计数值;
    若所述第一行程长度的计数值大于零,则将当前待解码点的中间系数设置为特定值,并将所述第一行程长度的计数值减少一个步长,直到所述第一行程长度的计数值等于零为止;及
    获取在所述第一行程长度的计数值等于零时读取到的待解码点的中间系数并进行解码。
  27. 如权利要求22或23所述的方法,其特征在于,所述限制参数包括缓存限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
    按照所述缓存限制参数对所述解码过程中的缓存逻辑进行控制。
  28. 如权利要求27所述的方法,其特征在于,所述按照所述缓存限制参数对所述解码过 程中的缓存逻辑进行控制,包括:
    根据所述缓存限制参数确定缓存限制点数阈值,所述缓存限制点数阈值用于限制所述缓存中允许写入的待解码点的数量阈值;及
    每当所述缓存中写入的待解码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待解码点的中间系数进行解码。
  29. 如权利要求28所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述每当所述缓存中写入的待解码点的数量达到所述缓存限制点数阈值时,控制从所述缓存中读取所述待解码点的中间系数进行解码,包括:
    统计所述缓存中每组点云分组中包含的待解码点的总点数,若所述缓存中包括M组点云分组,且所述M组点云分组包含的待解码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待解码点的中间系数进行解码;或者,
    统计所述缓存中包含的点云分组数M,基于M和点云分组的点数限制阈值计算所述缓存中包含的待编码点的总点数,若所述缓存中包含的待编码点的总点数达到所述缓存限制点数阈值,则控制从所述缓存中读取所述M组点云分组包含的待解码点的中间系数进行解码。
  30. 如权利要求27所述的方法,其特征在于,所述解码的解码方式包括以组数为单位的解码方式;所述按照所述缓存限制参数对所述解码过程中的缓存逻辑进行控制,包括:
    根据所述缓存限制参数确定所述缓存中允许写入的点云分组的组数阈值;及
    每当所述缓存中写入的点云分组的数量达到所述组数阈值时,控制从所述缓存中读取所述缓存中写入的点云分组包含的待解码点的中间系数进行解码。
  31. 如权利要求30所述的方法,其特征在于,所述方法还包括:
    按照预设排列方式对所述缓存中写入的点云分组进行排列;
    所述预设排列方式包括以下任一种:固定排列方式,动态排列方式;所述固定排列方式是指缓存中点云分组的中间系数排列方式固定,所述动态排列方式是指缓存中点云分组的中间系数排列方式存在变化。
  32. 如权利要求31所述的方法,其特征在于,每种所述排列方式对应一个索引值;所述方法进一步包括:
    从所述编码码流中解析出索引值,并根据所述索引值确定缓存中的点云分组的排列方式。
  33. 如权利要求22或23所述的方法,其特征在于,所述限制参数包括延迟限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
    按照所述延迟限制参数对所述解码过程中的延迟逻辑进行控制。
  34. 如权利要求22或23所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数;所述按照所述限制参数对所述解码过程进行控制,包括:
    按照所述缓存限制参数和所述延迟限制参数对所述解码过程中的解码逻辑进行控制。
  35. 如权利要求20所述的方法,其特征在于,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
    当所述限制参数仅包含一种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位;
    当所述限制参数包含两种参数时,所述限制参数的单位包括以下任一种或多种:以点数为单位,以组数为单位和以倍数关系为单位。
  36. 一种点云处理装置,其特征在于,所述装置包括:
    设置单元,用于设置点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;
    获取单元,用于获取所述点云中待编码点的属性信息;及
    处理单元,用于对所述待编码点的属性信息进行编码;以及,按照所述限制参数对所述编码过程进行控制。
  37. 一种点云处理装置,其特征在于,所述装置包括:
    获取单元,用于获取点云中待解码点的编码码流,以及,获取所述点云的限制参数,所述限制参数包括缓存限制参数和延迟限制参数中的一种或两种;及
    处理单元,用于对所述待解码点的编码码流进行解码;以及,按照所述限制参数对所述解码过程进行控制。
  38. 一种计算机设备,其特征在于,所述计算机设备包括:
    处理器,适于实现计算机可读指令;
    计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令适于由所述处理器加载并执行如权利要求1-19任一项所述的点云处理方法,或者如权利要求20-35任一项所述的点云处理方法。
  39. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令适于由处理器加载并执行如权利要求1-19任一项所述的点云处理方法,或者如权利要求20-35任一项所述的点云处理方法。
  40. 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1-19任一项所述的点云处理方法的步骤,或者实现如权利要求20-35任一项所述的点云处理方法的步骤。
PCT/CN2022/137750 2022-05-06 2022-12-09 点云处理方法、装置、设备、存储介质及产品 WO2023213074A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210488291.8 2022-05-06
CN202210488291.8A CN117061770A (zh) 2022-05-06 2022-05-06 一种点云处理方法、装置、设备、存储介质及产品

Publications (1)

Publication Number Publication Date
WO2023213074A1 true WO2023213074A1 (zh) 2023-11-09

Family

ID=88646187

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/137750 WO2023213074A1 (zh) 2022-05-06 2022-12-09 点云处理方法、装置、设备、存储介质及产品

Country Status (2)

Country Link
CN (1) CN117061770A (zh)
WO (1) WO2023213074A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210006837A1 (en) * 2019-07-05 2021-01-07 Tencent America LLC Techniques and apparatus for scalable lifting for point-cloud attribute coding
US20210407144A1 (en) * 2020-06-26 2021-12-30 Qualcomm Incorporated Attribute parameter coding for geometry-based point cloud compression
WO2022019713A1 (ko) * 2020-07-23 2022-01-27 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022062369A1 (zh) * 2020-09-25 2022-03-31 Oppo广东移动通信有限公司 点云编解码方法与系统、及点云编码器与点云解码器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210006837A1 (en) * 2019-07-05 2021-01-07 Tencent America LLC Techniques and apparatus for scalable lifting for point-cloud attribute coding
US20210407144A1 (en) * 2020-06-26 2021-12-30 Qualcomm Incorporated Attribute parameter coding for geometry-based point cloud compression
WO2022019713A1 (ko) * 2020-07-23 2022-01-27 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022062369A1 (zh) * 2020-09-25 2022-03-31 Oppo广东移动通信有限公司 点云编解码方法与系统、及点云编码器与点云解码器

Also Published As

Publication number Publication date
CN117061770A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
US11683524B2 (en) Method and apparatus for point cloud compression
EP4022573A1 (en) Predictive coding for point cloud compression
WO2021067884A1 (en) Block-based predictive coding for point cloud compression
JP7330291B2 (ja) 点群コーディング用の属性をコーディングする方法
WO2022121648A1 (zh) 点云数据编码方法、解码方法、设备、介质及程序产品
KR20230087474A (ko) 병렬 코딩을 위한 양방향 데이터 블록들의 조인트 터미네이션
US20210217205A1 (en) Techniques and apparatus for explicit quad-tree and binary-tree partitioning for geometry coding
WO2022121650A1 (zh) 点云属性的预测方法、编码器、解码器及存储介质
KR102238091B1 (ko) 3d 모델 압축 및 압축해제 시스템 및 방법
WO2024037091A1 (zh) 一种点云处理方法、装置及计算机设备、存储介质
WO2023241107A1 (zh) 点云处理方法、装置及计算机设备、存储介质
WO2023213074A1 (zh) 点云处理方法、装置、设备、存储介质及产品
WO2023103565A1 (zh) 点云属性信息的编解码方法、装置、设备及存储介质
WO2020061149A1 (en) Patch orientation derivation and prediction
WO2023024842A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2022257528A1 (zh) 点云属性的预测方法、装置及相关设备
CN116016951A (zh) 点云处理方法、装置、设备及存储介质
RU2773384C1 (ru) Способ кодирования атрибутов для кодирования облака точек
WO2023103564A1 (zh) 点云解码方法、点云编码方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
WO2023169001A1 (zh) 一种沉浸媒体的数据处理方法、装置、设备及存储介质
WO2024065269A1 (zh) 点云编解码方法、装置、设备及存储介质
WO2024082153A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
WO2023240662A1 (zh) 编解码方法、编码器、解码器以及存储介质
WO2022116118A1 (zh) 预测方法、编码器、解码器以及存储介质
WO2023169004A1 (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: 22940768

Country of ref document: EP

Kind code of ref document: A1