Encoding / Decoding Method and Apparatus for Point Cloud Geometric Data

By optimizing point cloud encoding and decoding through an ordered coarse point representation method that associates sensor indexes with sensing times, the problems of high encoding latency and poor compression performance in existing technologies are solved, and more efficient point cloud data processing is achieved.

CN117981325BActive Publication Date: 2025-10-28BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202280064149.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-06-30
Publication Date
2025-10-28
Estimated Expiration
2042-06-30

AI Technical Summary

Technical Problem

Existing point cloud codecs struggle to simultaneously achieve simplicity, low latency, and high compression performance during encoding and decoding, especially when using rotating or flexible sensor heads to sense sparse geometric data. They also fail to effectively combine predictive and adaptive sensing sequences between sensors.

Method used

An ordered coarse point representation method that associates sensor indexes and sensing times is adopted. By selecting the encoding methods for the predicted radius and residual radius, the encoding and decoding process of point cloud geometric data is optimized by utilizing sensor indexes and sensing paths in two-dimensional space.

Benefits of technology

It improves the encoding efficiency of point cloud data, reduces encoding latency, enhances the predictive capabilities between sensors, adapts to the sensing sequence, and improves compression performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117981325B_ABST
    Figure CN117981325B_ABST
Patent Text Reader

Abstract

A method and apparatus for providing encoding / decoding point cloud geometry data sensed by at least one sensor and associated with a sensor index, the point cloud geometry data being represented by ordered coarse points at certain discrete locations occupying a set of discrete locations in a two-dimensional space. The method includes: for a first coarse point (P1) having a first sensor index (λ1) and associated with a first radius (r1), selecting (110) a selected predicted radius (r) from at least one second radius (r2) associated with at least one second coarse point (P2) and at least one third radius (r3) associated with at least one third coarse point (P3). pred This will indicate the selected prediction radius (r) pred Is the data equal to the second radius (r2) or the third radius (r3)? pred Encode (120) into a bitstream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application generally relates to point cloud compression, and particularly to methods and apparatus for encoding / decoding point cloud geometric data sensed by at least one sensor. Background Technology

[0002] This section aims to introduce the reader to various aspects of the field, which may relate to aspects of at least one exemplary embodiment of the present application described and / or claimed below. This discussion is intended to help provide the reader with background information to facilitate a better understanding of the various aspects of the present application.

[0003] Point clouds have recently gained attention as a format for representing 3D data due to their broad capabilities in representing all types of physical objects or scenes. Point clouds can be used for various purposes, such as cultural heritage / buildings, where objects like statues or buildings are scanned in 3D to share their spatial configuration without sending or accessing them. Furthermore, it is a method to ensure the preservation of knowledge about an object in case it may be destroyed; for example, a temple damaged by an earthquake. Such point clouds are typically static, colored, and large-scale.

[0004] Another use case is in topography and cartography, where using 3D representation allows maps to be more than just flat and can include reliefs. Google Maps is now a good example of a 3D map, but it uses a grid instead of point clouds. However, point clouds can be a suitable data format for 3D maps, and such point clouds are typically static, colored, and large.

[0005] Virtual reality (VR), augmented reality (AR), and immersive worlds have recently become hot topics, with many predicting them as the future of 2D flat video. The basic idea is to immerse the viewer in their surrounding environment, whereas standard television only allows the viewer to see a virtual world in front of them. Immersion has several levels depending on the viewer's degree of freedom within the environment. Point clouds are a good candidate format for distributing VR / AR worlds.

[0006] The automotive industry, particularly the foreseeable development of autonomous vehicles, is another area where point clouds can be intensively utilized. Autonomous vehicles should be able to "detect" their environment and make sound driving decisions based on the presence and properties of their immediate neighbors and road configurations.

[0007] A point cloud is a set of points in three-dimensional (3D) space, with optional additional values ​​assigned to each point. These additional values ​​are often called attributes. Attributes can be, for example, three-component color, material properties such as reflectivity, and / or two-component normal vectors of the surface associated with the point.

[0008] Therefore, a point cloud is a combination of geometric data (the position of a point in 3D space is usually represented by 3D Cartesian coordinates x, y and z) and attributes.

[0009] Point clouds can be sensed by various types of devices, such as arrays of cameras, depth sensors, lasers (light detection and ranging, also known as lidar), radar, and can also be generated by computers (e.g., in film post-production). Depending on the use case, point clouds can have thousands to billions of points for mapping applications. The raw representation of a point cloud requires a very large number of bits per point, with at least 12 bits per Cartesian coordinate (x, y, or z), and optionally more bits for attributes(s), such as 3 x 10 bits for color.

[0010] In many applications, it is important to be able to distribute point clouds to end users or store them on servers while maintaining an acceptable (or preferably very good) quality of experience, consuming only a reasonable bitrate or storage space. Effectively compressing these point clouds is crucial for making distribution chains useful in many immersive worlds.

[0011] For distribution to and visualization by end users, such as on AR / VR glasses or any other 3D-enabled device, compression may be lossy (like video compression). Other use cases do require lossless compression, such as medical applications or autonomous driving, to avoid altering decision-making outcomes derived from subsequent analysis of the compressed and transmitted point cloud.

[0012] Until recently, point cloud compression (aka PCC) had not been solved by the mass market, and there were no standardized point cloud codecs available. In 2017, the standardization working group ISO / JCT1 / SC29 / WG11, also known as the Moving Picture Experts Group or MPEG, launched a working project on point cloud compression. This resulted in two standards: MPEG-I Part 5 (ISO / IEC 23090-5) or video-based point cloud compression (aka V-PCC); and MPEG-I Part 9 (ISO / IEC 23090-9) or geometry-based point cloud compression (aka G-PCC). The V-PCC encoding method compresses point clouds by projecting 3D objects multiple times to obtain 2D blocks packed into images (or video when processing dynamic point clouds). The resulting images or videos are then compressed using existing image / video codecs, allowing full utilization of already deployed image and video solutions. By its very nature, V-PCC is only efficient on dense and continuous point clouds because image / video codecs cannot compress non-smooth blocks, such as those obtained from the projection of sparse geometry data sensed by LiDAR.

[0013] The G-PCC coding method offers two approaches to compressing the sensed sparse geometric data.

[0014] The first approach is based on an occupancy tree, which can be any type of tree—octree, quadtree, or binary tree—representing the geometry of the point cloud. Occupied nodes (i.e., nodes associated with a cube / cube containing at least one point in the point cloud) are segmented until a certain size is reached, and the occupied leaf nodes provide the 3D location of the points, typically at the center of these nodes. Occupancy information is carried by occupancy data (binary data, flags), which signals the occupancy status of each child node of a node. High levels of compression of occupancy data for dense point clouds can be achieved by using neighbor-based prediction techniques. Sparse point clouds can also be processed by directly encoding the location of points within nodes of non-minimum size, stopping tree construction when only isolated points exist within a node; this technique is called Direct Encoding Mode (DCM).

[0015] The second approach is based on a prediction tree, where each node represents the 3D location of a point, and the parent / child relationship between nodes represents the spatial prediction from the parent node to the child node. This method can only handle sparse point cloud data and offers the advantages of lower latency and simpler decoding compared to occupancy-based methods. However, compared to the first occupancy-based method, the compression performance is only slightly better, and the encoding is also more complex because the encoder must densely search for the best predictor (from a long list of potential predictors) when constructing the prediction tree.

[0016] In both schemes, attribute (solution) encoding is performed after geometry (solution) encoding, effectively resulting in two-pass encoding. Therefore, the joint geometry / attribute low latency is achieved by slicing the 3D space into independently coded sub-volumes without requiring prediction between sub-volumes. This can severely impact compression performance when using multiple slices.

[0017] Combining the requirements of simplicity, low latency, and compression performance in encoders and decoders remains a problem that existing point cloud codecs have not yet satisfactorily solved.

[0018] A key use case is the transmission of sparse geometric data sensed by at least one sensor mounted on a moving vehicle. This typically requires a simple and low-latency mounted encoder. Simplicity is crucial because the encoder is likely to be deployed on a computing unit performing other processing in parallel (such as (semi-)autonomous driving), thus limiting the processing power available to the point cloud encoder. Low latency is also required to allow for rapid transmission from the car to the cloud, enabling real-time viewing of local traffic based on data from multiple vehicles and making sufficiently fast decisions based on traffic information. While using 5G can reduce transmission latency sufficiently, the encoder itself should not introduce too much latency due to encoding. Furthermore, compression performance is critical, as the data stream from millions of cars to the cloud is expected to be enormous.

[0019] G-PCC has already utilized specific priors related to the sparse geometry data sensed by the rotating lidar, and has resulted in very significant compression gains.

[0020] First, G-PCC utilizes the elevation angle (relative to the horizontal ground) sensed from the rotating lidar head 10, such as... Figure 1 and Figure 2 As shown. The lidar head 10 includes a set of sensors 11 (e.g., lasers), of which five are shown here. The lidar head 10 can rotate about the vertical axis z to sense the geometric data of a physical object. The geometric data sensed by the lidar is expressed in spherical coordinates (r). 3D ,φ,θ) represents, where r 3D φ is the distance from point P to the center of the lidar head, φ is the azimuth angle of the lidar head's rotation relative to the reference object, and θ is the elevation angle of the sensor k of the rotating lidar head 10 relative to the horizontal reference plane.

[0021] A regular distribution along the azimuth angle has been observed in the data sensed by lidar, such as Figure 3 As shown. This rule is used in G-PCC to obtain a quasi-1D representation of the point cloud, where, up to noise, only the radius r3D belongs to a continuous range of values, while the angles φ and θ take only discrete values. Up to I-1, where I is the number of azimuth angles used for sensing the point, and Where J is the number of sensors in the rotating lidar head 10. Essentially, G-PCC represents the sparse geometric data sensed by the lidar in a two-dimensional (discrete) angular coordinate space (φ,θ), such as... Figure 3 As shown, and the radius value r of each point. 3D .

[0022] By using the discrete property of angles in spherical coordinate space to predict the position of the current point based on already encoded points, G-PCC utilizes this quasi-1D property in both the occupancy tree and the prediction tree.

[0023] More precisely, the occupancy tree densely utilizes DCM and entropy-encodes the direct locations of points within a node using a context-adaptive entropy encoder. Then, a local transformation from point location to angular coordinates (φ, θ) and these angular coordinates relative to the discrete angular coordinates (φ) obtained from the previously encoded points are performed. i ,θ j The context is obtained by using the quasi-1D property (r2D, φ) of this angular coordinate space. i ,θ j The prediction tree directly encodes the first version of the point position in angular coordinates (r2D, φ, θ), where r2D is the projected radius on the horizontal xy plane, as shown below. Figure 4 As shown. Then, the spherical coordinates (r2D,φ,θ) are converted to 3D Cartesian coordinates (x,y,z), and the xyz residuals are encoded to address coordinate transformation errors, approximations of elevation and azimuth angles, and potential noise.

[0024] G-PCC does use angle priors to better compress the sparse geometry data sensed by rotating LiDAR, but it doesn't adapt the coding structure to the sensing order. By its very nature, the occupancy tree must be encoded to its final depth before the output points. This occupancy data is encoded according to a so-called breadth-first order: first, the occupancy data of the root node is encoded, indicating its occupied child nodes; then the occupancy data of each occupied child node is encoded, indicating its occupied descendant nodes; and so on, iterating through the depth of the tree until leaf nodes can be determined, and the corresponding points are provided / output to the application or one or more attribute coding schemes. Regarding the prediction tree, the encoder is free to choose the order of points in the tree, but to achieve good compression performance and optimize prediction accuracy, G-PCC proposes encoding a tree for each sensor. This mainly suffers from the same drawback as using a single coding slice per sensor: suboptimal compression performance because predictions are not allowed between sensors, and low encoder latency cannot be provided. Worse still, each sensor should have its own coding process, and the number of core coding units should equal the number of sensors; this is impractical.

[0025] In short, within the framework of rotating sensor heads used to sense sparse geometric data of point clouds, existing technologies have not solved the problem of combining simplicity of encoding and decoding, low latency, and compression performance.

[0026] Furthermore, sensing sparse geometric data of point clouds using a rotating sensor head has some drawbacks, and other types of sensor heads can be used.

[0027] The mechanical components that generate the rotation (turning) of a rotating sensor head are prone to breakage and are very expensive. Similarly, by design, the field of view is necessarily 2π. This does not allow for sensing specific regions of interest at high frequencies; for example, sensing in front of a vehicle might be more interesting than sensing behind it. In practice, in most cases, when the sensor is attached to a vehicle, the vehicle itself blocks most of the 2π field of view, and there is no need to sense the blocked area.

[0028] Recent advancements in sensors allow for greater flexibility in selecting the area to be sensed. In most recent designs, the sensor can move more freely and electronically (thus avoiding fragile mechanical parts) to achieve various sensing paths within a 3D scene, such as... Figure 5 As shown. Figure 5The diagram shows a set of four sensors. Their relative sensing directions, i.e., azimuth and elevation, are fixed relative to each other, but they collectively follow a programmable sensing path depicted by dashed lines in two-dimensional angular coordinate (φ, θ) space to sense the scene. Points in the point cloud can then be sensed systematically along the sensing path. When a region of interest R is detected, some sensor heads can also adjust their sensing frequency by increasing their sensing frequency, such as... Figure 6 As shown. This region of interest R may be associated with, for example, a nearby object, a moving object, or any object (pedestrian, other vehicle, etc.) that was previously segmented in the previous frame or dynamically segmented during sensing. Figure 7 Another example of a sensing path (a typical zigzag sensing path) is illustrated schematically. This sensing path is used by a sensor head comprising two sensors, which are able to increase their sensing frequency when a region of interest (gray shading point and gray hash point) is detected. The use of a zigzag sensing path can be advantageous for sensing limited (azimuth) angular sectors of a 3D scene. Because the sensors can be attached to a vehicle, their viewport of interest is necessarily limited by the presence of the vehicle itself, which may obstruct the scene, unless the sensor is located on top of the car. Therefore, sensors with limited detection angles are of high interest and are easier to integrate into vehicles.

[0029] like Figure 8 As shown, a sensor head including a single sensor can also be used to sense multiple locations. Figure 8 (Two vertical positions on the surface), for example, using reflections on a mirror that oscillates with rotation (here, vertical rotation). In this case, instead of using a set of sensors, sensors are used at different angular positions along the sensing path (here, a zigzag sensing path). Figure 8 A single sensor (with different elevation angles) is used to simulate sensing using a set of multiple sensors.

[0030] For simplicity, in the following description and claims, "sensor head" may refer to a set of physical sensors or a set of sensing elevation indexes simulating a set of sensors. Furthermore, those skilled in the art will understand that "sensor" may also refer to the sensor at each sensing elevation index position.

[0031] Combining the requirements of ease of use, low latency, and compression performance of point clouds sensed by any type of sensor with encoders and decoders remains a problem that existing point cloud codecs have not yet satisfactorily solved.

[0032] In view of the foregoing, at least one exemplary embodiment of this application has been designed. Summary of the Invention

[0033] To provide a basic understanding of certain aspects of this application, the next section gives a simplified summary of at least one exemplary embodiment. This summary is not an exhaustive overview of the exemplary embodiments. It is not intended to identify key or essential elements of the embodiments. The following summary presents only some aspects of at least one exemplary embodiment in a simplified form as a prelude to a more detailed description provided elsewhere in this document.

[0034] According to a first aspect of this application, a method is provided for encoding point cloud geometric data sensed by at least one sensor associated with a sensor index into a bitstream, the point cloud geometric data being represented by ordered coarse points at certain discrete locations occupying a set of discrete locations in a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor that senses a point in the point cloud associated with the coarse point and a sample index associated with a sensing time when the point in the point cloud was sensed, each coarse point being associated with a radius based on the distance of the point in the point cloud from a reference object. The method includes: for a first coarse point having a first sensor index and associated with a first radius, selecting a selected prediction radius from at least one second radius associated with at least one second coarse point having a second sensor index different from the first sensor index and at least one third radius associated with at least one third coarse point having a sensor index equal to the first sensor index; encoding data indicating whether the selected prediction radius is equal to the second radius or equal to the third radius into the bitstream; and predictively encoding a residual radius between the first radius and the selected prediction radius into the bitstream.

[0035] According to a second aspect of this application, a method is provided for decoding point cloud geometric data sensed by at least one sensor associated with a sensor index from a bitstream, the point cloud geometric data being represented by ordered coarse points at certain discrete locations occupying a set of discrete locations in a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor that senses a point in the point cloud associated with the coarse point and a sample index associated with the sensing time at which the point in the point cloud was sensed, each coarse point being associated with a radius based on the distance of the point in the point cloud from a reference object. The method includes: for a first occupancy coarse point having a first sensor index, decoding from a bitstream data indicating whether a selected prediction radius is equal to a second radius or equal to a third radius, the selected prediction radius being selected from at least one second radius associated with at least one second occupancy coarse point having a second sensor index different from the first sensor index and at least one third radius associated with at least one third occupancy coarse point having a sensor index equal to the first sensor index; for the first occupancy coarse point, decoding from the bitstream a residual radius; and obtaining a radius associated with a point in the point cloud for the first occupancy coarse point based on the residual radius and the selected prediction radius obtained from the data.

[0036] In one exemplary embodiment, the data includes binary data indicating whether the selected predicted radius is a second radius or a third radius.

[0037] In one exemplary embodiment, the at least one second radius forms a first radius list, the at least one third radius forms a second radius list, and binary data indicates whether the selected predicted radius belongs to the first radius list or the second radius list.

[0038] In one exemplary embodiment, the data further includes a predictor index that indicates which radius in a first or second list of radii the selected prediction radius is equal to.

[0039] In one exemplary embodiment, a selected prediction radius is selected from a list of a single second radius and at least one third radius. The data includes a predictor index such that if the predictor index is not equal to a predetermined index value, the predictor index indicates which radius in the list the selected prediction radius is equal to; otherwise, the data further includes binary data indicating whether the selected prediction radius is equal to a second radius or a third radius in the radius list indicated by the predetermined index value.

[0040] In one exemplary embodiment, the at least one second radius and at least one third radius form a single list of radii, and the data includes a predictor index indicating which radius in the list the selected predicted radius is equal to.

[0041] In one exemplary embodiment, the radii of a single radii list are statistically sorted from the most selected to the least selected.

[0042] According to a third aspect of this application, a bitstream of encoded point cloud data representing point cloud geometry sensed by at least one sensor associated with a sensor index is provided. The point cloud geometry is represented by ordered coarse points at certain discrete locations occupying a set of discrete locations in a two-dimensional space. Each coarse point is located in the two-dimensional space by a sensor index associated with a sensor sensing a point in the point cloud associated with the coarse point and a sample index associated with the sensing time at which the point in the point cloud was sensed. Each coarse point is associated with a radius based on the distance of the point in the point cloud from a reference object. The bitstream includes encoded point cloud data representing a residual radius between the radius associated with a first coarse point and a selected prediction radius; and data indicating whether the selected prediction radius is equal to a second radius or a third radius. The first coarse point has a first sensor index in the two-dimensional space; the second radius is associated with a second coarse point having a second sensor index in the two-dimensional space different from the first sensor index; and the radius is associated with at least one third coarse point having a sensor index in the two-dimensional space equal to the first sensor index.

[0043] According to a fourth aspect of this application, means is provided for encoding point cloud geometric data sensed by at least one sensor associated with a sensor index into a bitstream, the point cloud geometric data being represented by ordered coarse points of some discrete locations occupying a set of discrete locations in a two-dimensional space. The means includes one or more processors configured to perform the method according to a first aspect of this application.

[0044] According to a fifth aspect of this application, an apparatus is provided for decoding point cloud geometric data sensed by at least one sensor associated with a sensor index from a bitstream, the point cloud geometric data being represented by ordered coarse points of some discrete locations occupying a set of discrete locations in a two-dimensional space. The apparatus includes one or more processors configured to perform the method according to a second aspect of this application.

[0045] According to a sixth aspect of this application, a computer program product is provided, including instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to a first aspect of this application.

[0046] According to the seventh aspect of this application, a non-transitory storage medium is provided carrying program code instructions for performing the method according to the first aspect of this application.

[0047] According to the eighth aspect of this application, a computer program product is provided, including instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to the second aspect of this application.

[0048] According to the ninth aspect of this application, a non-transitory storage medium is provided carrying program code instructions for performing the method according to the second aspect of this application.

[0049] The specific properties of at least one of the embodiments, as well as other objects, advantages, features, and uses of at least one of the embodiments, will become apparent from the following description of the examples in conjunction with the accompanying drawings. Attached Figure Description

[0050] Reference will now be made to the accompanying drawings by way of example, which illustrate exemplary embodiments of this application, wherein:

[0051] Figure 1 A side view of a sensor head according to the prior art and some of its parameters are schematically shown;

[0052] Figure 2 A schematic top view of a sensor head according to the prior art and some of its parameters are shown;

[0053] Figure 3 The diagram schematically illustrates the regular distribution of data sensed by a rotating sensor head according to the prior art;

[0054] Figure 4 The diagram schematically illustrates the representation of points in a point cloud in 3D space according to the prior art;

[0055] Figure 5 An example of a sensor head capable of sensing a real scene along a programmable sensing path, according to existing technology, is illustrated schematically.

[0056] Figure 6 An example of a sensor head according to the prior art is illustrated, which is capable of sensing a real scene along a programmable sensing path according to different sensing frequencies;

[0057] Figure 7 An example of a sensor head according to the prior art is illustrated, which is capable of sensing a real scene along a programmable zigzag sensing path according to different sensing frequencies;

[0058] Figure 8 A single sensor head is schematically shown that is capable of sensing a real scene along a programmable zigzag sensing path according to different sensing frequencies;

[0059] Figure 9An ordered coarse point is schematically shown according to at least one exemplary embodiment;

[0060] Figure 10 An example of a coarse point sorting according to an exemplary embodiment is illustrated schematically;

[0061] Figure 11 The representation of ordered coarse points in a two-dimensional coordinate (s,λ) space is schematically shown;

[0062] Figure 12 An ordered coarse point is schematically shown according to at least one exemplary embodiment;

[0063] Figure 13 The illustration shows a sensor sensing a point on a road that resembles a horizontal plane.

[0064] Figure 14 This schematically illustrates a sensor sensing a point on a road with an object;

[0065] Figure 15 The diagram schematically illustrates the predicted radius when a radial jump occurs from an old object to a new object, according to the prior art.

[0066] Figure 16 The diagram schematically illustrates the predicted radius from another sensor when a radial jump occurs from an old object to a new object, according to at least one exemplary embodiment.

[0067] Figure 17 A schematic block diagram of the steps of a method 100 for encoding point cloud geometric data into a bitstream of encoded point cloud data according to at least one exemplary embodiment is shown.

[0068] Figure 18 A schematic block diagram illustrating the steps of a method 200 for decoding point cloud geometric data from a bitstream of encoded point cloud data according to at least one exemplary embodiment is shown.

[0069] Figure 19 An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment;

[0070] Figure 20 An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment of methods 100 and 200;

[0071] Figure 21 An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment of methods 100 and 200;

[0072] Figure 22An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment of methods 100 and 200;

[0073] Figure 23 An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment of methods 100 and 200;

[0074] Figure 24 An example of a coarse point belonging to the neighborhood of a first occupied coarse point is illustrated schematically according to an exemplary embodiment of methods 100 and 200;

[0075] Figure 25 It shows Figure 17 A flowchart of the steps of a variant of method 100;

[0076] Figure 26 It shows Figure 18 A flowchart of the steps of a variant of method 200;

[0077] Figure 27 Examples of coarse points belonging to the neighborhood of the first occupied coarse point are illustrated schematically according to variations of methods 100 and 200.

[0078] Figure 28 The encoding / decoding of a predictor index according to at least one exemplary embodiment is schematically illustrated; and

[0079] Figure 29 A block diagram illustrating an example system that implements various aspects and exemplary embodiments is shown.

[0080] Similar reference numerals can be used in different figures to represent similar components. Detailed Implementation

[0081] At least one of the exemplary embodiments is described more fully below with reference to the accompanying drawings, which illustrate examples of at least one of the exemplary embodiments. However, exemplary embodiments may be embodied in many alternative forms and should not be construed as limited to the examples described herein. Therefore, it should be understood that there is no intention to limit the exemplary embodiments to the specific forms disclosed. Rather, this disclosure is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this application.

[0082] At least one aspect typically involves point cloud encoding and decoding, another typically involves transmitting the generated or encoded bit stream, and yet another involves receiving / accessing the decoded bit stream.

[0083] Furthermore, this aspect is not limited to MPEG standards, such as MPEG-I Part 5 or Part 9 related to point cloud compression, and can be applied to, for example, other standards and recommendations, whether pre-existing or future-developed, and extensions to any such standards and recommendations (including MPEG-I Part 5 and Part 9). Unless otherwise stated or technically excluded, the aspects described in this application may be used individually or in combination.

[0084] This invention relates to encoding / decoding point cloud geometric data represented by ordered coarse points, which are coarse representations of some discrete locations of a set of discrete locations occupying two-dimensional space.

[0085] For example, in the working group ISO / IEC JTC 1 / SC 29 / WG 7 on MPEG 3D graphics coding, a new codec named L3C2 (Low Latency Low Complexity Codec) is being considered to improve the coding efficiency of point clouds sensed by LiDAR, relative to the G-PCC codec. The L3C2 codec provides an example of a two-dimensional representation (i.e., a coarse representation) of points in the point cloud. A description of the code can be found in the working group's output file (ISO / IEC JTC 1 / SC 29 / WG 7, MPEG 3D Graphics Coding, "Technology Considered in G-PCC", August 31, 2021) in N00167.

[0086] Basically, for each sensing point Pn in the point cloud, the sensor index λ associated with the sensor of sensing point Pn is obtained by transforming the 3D Cartesian coordinates (xn, yn, zn) representing the 3D position of sensing point Pn. n and the azimuth angle φ representing the sensing angle of the sensor. n Then, based on the azimuth angle φ n and sensor index λ n The points in the point cloud are sorted, for example, first based on azimuth, and then based on sensor index, according to lexicographical order. The order index o(Pn) is given by the point cloud. n It can be obtained in the following ways:

[0087] o(P n )=φ n *K+λ n

[0088] Where K is the number of sensors.

[0089] Figure 9 The image shows a coarse representation of ordered coarse points. Five points in the point cloud have been sensed. In the coarse representation, each of these five points is roughly represented by a coarse point (black dot): two coarse points, Pn and Pn+1, represent points at time t1 with an angle φ. c (in multiple φ)i Two points in the point cloud sensed by ( ′ ) and three coarse points are represented at time t2 with angle φ c The point cloud sensed by +Δφ has three points. The coarse point representing the sensed point of the point cloud is called the occupied coarse point, and the coarse point not representing the sensed point of the point cloud is called the unoccupied coarse point. Since the points of the point cloud in the coarse representation are represented by the occupied coarse points, the order index associated with the points of the point cloud is also the order index associated with the occupied coarse points.

[0090] A rough representation of point cloud geometry can then be defined in a two-dimensional coordinate (φ,λ) space.

[0091] A coarse representation can also be defined for any type of sensor head, including rotating or non-rotating sensor heads. It is defined based on a sensing path defined by sensor features in a two-dimensional angular coordinate (φ, θ) space, which includes: azimuth coordinate φ representing the azimuth angle relative to a reference object; and elevation coordinate θ representing the elevation angle relative to a horizontal reference plane. The sensing path senses the point cloud based on ordered coarse points representing the potential locations of the sensing points. Each coarse point is defined by a sample index s associated with the sensing time along the sensing path and a sensor index λ associated with the sensor.

[0092] exist Figure 10 The diagram uses a sensor head comprising two sensors. The sensing paths followed by the two sensors are represented by dashed lines. For each sample index s (each sensing time), two coarse points are defined. The coarse point associated with the first sensor is... Figure 10 The black shaded dots represent the points, and the coarse dots associated with the second sensor are represented by black hash dots. Each of these two coarse dots belongs to the sensor sensing path (dashed line) defined by the sensing path SP. Figure 11 The representation of ordered coarse points in a two-dimensional coordinate (s, λ) space is schematically shown. Figure 10 and Figure 11 The arrows in the diagram illustrate the connection between two successive ordered coarse points.

[0093] Based on the rank of each coarse point in the ordered coarse points, the sequential index o(P) is associated with each coarse point:

[0094] o(P)=λ+s*K

[0095] Where K is the number of sensors in a group of sensors for the same sample index or the number of different locations of a single sensor, and λ is the sensor index of the sensor that senses point P in the point cloud at sensing time s.

[0096] Figure 12The ordered coarse points are shown in a rough representation. Five occupied coarse points are shown (black circles): two coarse points Pn and Pn+1 are occupied by two points of the point cloud sensed at sensing time t1 (corresponding to sample index s1), and three coarse points are occupied by three points of the point cloud sensed at sensing time t2 (corresponding to sample index s2).

[0097] A rough representation of point cloud geometric data can then be defined in a two-dimensional coordinate (s,λ) space.

[0098] Given the order index o(P1) of the first coarse point occupied by the first sensing point of the point cloud and the order difference Δo, the order index o(P) of any coarse point occupied by the sensing point P of the point cloud can be recursively reconstructed:

[0099] o(P)=o(P -1 )+Δo

[0100] Encoding / decoding point cloud geometry involves encoding / decoding the radius of each point in the point cloud. The radius associated with a point in the point cloud is radius r2D, which is equal to the projection of radius r3D onto the xy-horizontal plane, such as... Figure 4 As shown. In the following text, radius refers to the projection of the 3D radius associated with a point in the point cloud.

[0101] In the following description, the invention is illustrated by considering a coarse representation defined in a two-dimensional coordinate (s,λ) space. However, it can also be described with reference to a coarse representation defined in a two-dimensional coordinate (φ,λ) space, since rotating sensor heads, such as lidar heads, provide a specific coarse representation defined in a two-dimensional coordinate (s,λ) space, wherein at each sensing moment, the sensor head detects an object, and the sensing point corresponds to an occupied coarse point in the representation.

[0102] As previously described, point cloud geometry is represented by an ordered coarse point at some discrete locations occupying a set of discrete positions in a two-dimensional coordinate (s, λ) space. Each coarse point is then located in the two-dimensional coordinate (s, λ) space using a sensor index associated with a sensor that senses points in the point cloud associated with that coarse point and a sample index associated with the sensing time at which the point in the point cloud was sensed. In the method discussed below, each coarse point in the point cloud is considered a first coarse point P1.

[0103] The radius associated with a point in the point cloud is also related to the coarse point representing the point cloud in the coarse representation.

[0104] The radius r1 is associated with a point P in the point cloud represented by a first occupied coarse point P1 in the coarse representation. The first occupied coarse point P1 has a sample index s1 and a sensor index λ1 in two-dimensional coordinates (s, λ). The radius r1 is not typically encoded directly; instead, the residual radius rres is encoded after obtaining the following...

[0105] rres = r1 - rpred

[0106] Where rpred is the prediction radius.

[0107] The coding performance of radius r1 depends on the quality of the predicted radius rpred, which is determined to limit the dynamic range of the residual radius. A smaller dynamic range of the residual radius typically requires fewer bits to be encoded into the bitstream.

[0108] Typically, the predicted radius rpred is selected from some previously encoded radii associated with points in the point cloud sensed by the same sensor whose index is equal to the first sensor index λ1. This provides good coding efficiency when the radius r1 does not change much between two successive sensing times (e.g., between sample index s1 and sample index s1-1).

[0109] When the rotation sensor detects, such as Figure 13 This is especially true when the road shown is close to a horizontal plane. In this case, the predicted radius rpred is likely equal to the previously encoded radius rpred,1 for the same sensor λ1.

[0110] Of course, some objects can be placed on the road, such as Figure 14 As shown. In this case, the predicted radius rpred may not be the previously encoded radius rpred,1, but rather another previously encoded radius rpred,j from a more distant past (j>1).

[0111] Therefore, the predicted radius rpred is typically selected from a list of radii that correspond to previously encoded / decoded radii associated with points in the point cloud sensed by the same sensor λ1. When a new object is sensed for the first time, such a list of radii cannot provide a good predicted radius rpred, as none of the previously encoded / decoded radii associated with points of the new object belong to this list.

[0112] This situation is as follows Figure 15As shown, a point P belonging to a new object Onew is predicted by a predicted point Ppred belonging to another object Oold, since point P is the first point of the new object Onew sensed by sensor λ1. Therefore, the predicted radius rpred is far from the first radius r1 associated with point P, and the residual radius rres has a large dynamic range. Encoding such a residual radius is expensive in terms of bit rate.

[0113] One of the problems to be solved is to better handle the transition from old to new objects, which leads to radius jumps (for the same sensor λ1) and poor radius prediction. By improving prediction, better performance compression should be achieved because the dynamics of the residual radius rres to be encoded can be reduced.

[0114] In short, the present invention provides a solution to this problem by selecting a predicted radius rpred associated with a point P in a point cloud having a first occupied coarse point P1 encoded and represented in a two-dimensional coordinate (s,λ) space, from at least one second radius associated with at least one point sensed by a sensor index different from the first sensor index λ1 and a sample index less than or equal to the first sample index s1. The at least one second point in the point cloud is represented in the coarse representation by at least one second occupied coarse point.

[0115] The predicted radius of the sensing point belonging to the new object is selected from the radii associated with the points sensed by the sensor index that is different from the first sensor index, which provides a better prediction than the prediction obtained from the radii associated with the points sensed by the sensor index that is equal to the first sensor index.

[0116] For example, in Figure 16 The image depicts an example of a selected prediction radius associated with a prediction point Ppred, which is sensed by a sensor associated with a sensor index different from the first sensor index λ1. For example... Figure 15 As shown, the residual radius between the radii associated with points P and Ppred has lower dynamics compared to the residual radius between the radii associated with points P and Ppred.

[0117] Therefore, the encoded residual radius is improved compared to the residual radius obtained from the predicted radius corresponding to the previously encoded / decoded radius associated with the point sensed by the same sensor.

[0118] The prediction radius is associated with points sensed by sensors having sensor indices different from the first sensor index λ1, and these points are also associated with sample indices less than or equal to the first sample index s1, i.e., points belonging to the causal neighborhood of point P.

[0119] This allows both the encoder and decoder to obtain the same prediction radius.

[0120] Figure 17 A block diagram illustrating the steps of a method 100 for encoding point cloud geometric data into a bitstream of encoded point cloud data according to at least one exemplary embodiment is shown.

[0121] Consider a first occupancy coarse point P1 in a two-dimensional coordinate (s, λ) space. In the coarse representation, the first occupancy coarse point P1 represents a sensing point in the point cloud. In the two-dimensional coordinate (s, λ) space, the first occupancy coarse point P1 has a first sample index s1 and a first sensor index λ1, and is associated with a first radius r1.

[0122] In step 110, a selected prediction radius rpred is obtained from at least one second radius r2 associated with at least one second occupancy coarse point P2 for the first occupancy coarse point P1. Each second occupancy coarse point P2 has a second sensor index λ2 that is different from the first sensor index λ1 and a second sample index s2 that is lower than or equal to the first sample index s1.

[0123] Figure 19 An example of coarse points belonging to the causal neighborhood of the first occupied coarse point P1 is illustrated. Unoccupied coarse points are represented by white dots delimited by dashed lines, while occupied coarse points are represented by gray dots.

[0124] The gray shaded areas represent groups of second coarse points with a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 lower than or equal to the first sample index s1. In the coarse representation, arrows between the coarse points indicate their order. Some second coarse points are occupied (gray points), while others are unoccupied (white points). All gray shaded areas form a causal neighborhood around the first occupied coarse point; that is, occupied second coarse points belonging to this causal neighborhood can be obtained and / or decoded by encoding and / or decoding methods before processing the first occupied coarse point P1. Note that coarse points with a sensor index equal to the first sensor index λ1 are not second coarse points and do not belong to the gray shaded areas.

[0125] In step 120, the data Ipred is encoded into bitstream B. The data Ipred represents the selected prediction radius rpred.

[0126] In step 130, the residual radius rres is obtained by calculating the difference between the first radius r1 and the selected predicted radius rpred:

[0127] r res =r1-r pre d

[0128] The residual radius rres is encoded into bitstream B.

[0129] In an exemplary embodiment of step 110, when a selected prediction radius rpred is selected from the radii r2 associated with a plurality of second occupancy coarse points P2, the selected prediction radius rpred corresponds to a radius that minimizes the cost function representing the bit rate (for encoding the residual radius rres) or a trade-off between the target bit rate and distortion.

[0130] In one embodiment of step 130, the residual radius rres can be encoded by signaling binary data indicating whether the residual radius rres is equal to zero, and then signaling binary data indicating the sign of the residual radius rres. The remainder |rres|-1 can be encoded using an expGolomb encoder.

[0131] In one variant, the remainder |Q(rres)|-1 can be encoded using the expGolomb encoder, where Q(rres) is the quantized residual radius.

[0132] Without limiting the scope of the invention, any other encoding of the residual radius rres may be used.

[0133] Figure 18 A block diagram illustrating the steps of a method 200 for decoding point cloud geometric data from a bitstream of encoded point cloud data according to at least one exemplary embodiment is shown.

[0134] Figure 18 Decoding method 200 corresponds to Figure 17 The encoding method is 100.

[0135] Consider a first coarsely occupied point P1 in a two-dimensional coordinate (s, λ) space. In the two-dimensional coordinate (s, λ) space, the first coarsely occupied point P1 has a first sample index s1 and a first sensor index λ1.

[0136] In step 210, data Ipred is decoded from bitstream B. Data Ipred represents a selected prediction radius rpred selected from at least one second radius r2 associated with at least one second occupancy coarse point P2, which has a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 lower than the first sample index s1.

[0137] In step 220, the residual radius rres is decoded from bitstream B.

[0138] In step 230, based on the residual radius rres and the selected predicted radius rpred obtained from the data Ipred, the (decoded) radius r1 associated with the point in the point cloud represented by the first coarse point P1 is obtained:

[0139] r1 = r res +r pred

[0140] In one embodiment of step 230, the residual radius rres can be decoded by decoding binary data indicating whether the residual radius rres is equal to zero, and possibly by decoding binary data indicating the sign of the residual radius rres, and possibly by decoding the remainder |rres|-1 using the expGolomb decoder.

[0141] In one variant, the remainder ||Q(rres)|-1 can be decoded using the expGolomb decoder, and the residual radius rres is obtained as follows:

[0142] r1=IQ(Q(r res )+r pred

[0143] Where IQ(Q(rres)) is the dequantized residual radius.

[0144] Without limiting the scope of the invention, any other decoding of the residual radius rres may be used.

[0145] exist Figure 20 In an exemplary embodiment of methods 100 and 200 shown, the selected prediction radius rpred may be equal to a second radius r2 associated with the second occupancy coarse point P2, such as a first distance D1 between the second sensor index λ2 and the first sensor index λ1 of the second occupancy coarse point P2, which is defined by two boundaries λ. 2;below and λ 2;above Defining. In Figure 20 In the illustrative example, the boundary λ 2;below It equals 2, while the boundary λ 2;above It equals 1.

[0146] The definition of the first distance D1 restricts the causal neighborhood of the first coarse-grained point P1, and thus limits the computational resources available for selecting the prediction radius. It also ensures a certain correlation between radii r1 and r2, because this correlation tends to disappear when the sensor index difference |λ2-λ1| is large.

[0147] According to this exemplary embodiment of methods 100 and 200, the second occupancy coarse point P2 can be an occupancy coarse point having a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 lower than or equal to the first sample index s1. The second occupancy coarse point P2 also satisfies a first distance between the second sensor index λ2 and the first sensor index λ1 of the second occupancy coarse point P2, defined by two boundaries λ. 2;below and λ 2;above Conditions within a defined range. These second occupancy rough points belong to... Figure 20 The gray shaded area in the image.

[0148] exist Figure 21 In an exemplary embodiment of methods 100 and 200 shown, the selected prediction radius rpred may be equal to a second radius r2 associated with the second occupancy coarse point P2, such as a second distance D2 between the second sample index s2 of the second occupancy coarse point P2 and the first sample index s1 defined by the boundary W. Figure 21 In this context, the second approximate point P2 belongs to the gray shaded area and the boundary W equals 4.

[0149] The definition of the second distance D2 restricts the causal neighborhood of the first coarse point P1, and thus the computational resources for choosing the prediction radius. It also ensures a certain correlation between radii r1 and r2, because this correlation tends to disappear when the sensor index difference s1-s2 is large, as points P1 and P2 tend to belong to different objects or different parts of the same object.

[0150] According to this exemplary embodiment of methods 100 and 200, the second occupancy coarse point P2 may be an occupancy coarse point having a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 lower than or equal to the first sample index s1. The second occupancy coarse point P2 also satisfies the condition that the second distance D2 between the second sample index s2 of the second occupancy coarse point P2 and the first sample index s1 is defined by the boundary W.

[0151] exist Figure 22 In one variant shown, the selected prediction radius rpred can be equal to the second radius r2 associated with the second occupied coarse point P2, such as the second distance D2 being minimized.

[0152] This variant maximizes the chance of obtaining a good prediction radius because the second occupancy coarse point P2, which is considered for selecting the prediction radius, is the closest occupancy coarse point to the first coarse point P1. Therefore, the first occupancy coarse point P1 and the second occupancy coarse point P2 are likely associated with points of the same sensing object.

[0153] According to this variant, the second coarse occupancy point P2 is an occupancy point with a second sensor index λ2 that is different from the first sensor index λ1 and a second sample index s2 that is lower than or equal to the first sample index s1. The second coarse occupancy point P2 also satisfies the condition that the second distance D2 is minimized. Figure 22 In the middle, these second occupancy coarse points belong to the gray shaded area, and the prediction radius rpred is selected by considering two occupancy second coarse points P2.

[0154] exist Figure 23 In an exemplary embodiment of methods 100 and 200 shown, a selected prediction radius rpred may be selected based on at least two second radii r2,i associated with at least two second coarse occupancy points P2,i, wherein the second sample indices s2 and first sample indices s1 of the at least two second coarse occupancy points P2,i have the same second distance D2. The selected prediction radius rpred is equal to the second radius r2,i associated with the second coarse occupancy point P2,i, which is either the second coarse occupancy point P2,i or the sensor index λ that is closest to the first sensor index λ1. 2,i (exist Figure 23 Point P2,i), or in a variant, having a nearest sensor index λ1 less than the first sensor index λ1 (in Figure 23 Point P2, i-1 on the [theory / parameter].

[0155] According to this exemplary embodiment of methods 100 and 200, the second occupancy coarse point P2 may be an occupancy coarse point having a second sensor index λ2 that is different from the first sensor index λ1 and a second sample index s2 that is lower than or equal to the first sample index s1. The second occupancy coarse point P2 has a sensor index λ that is closest to the first sensor index λ1. 2,i Or, in one variant, having the nearest sensor index (less than) the first sensor index λ1.

[0156] This exemplary embodiment and its variations maximize the chance of obtaining a good prediction radius because the second occupancy coarse point P2 considered for selecting the prediction radius is the closest occupancy coarse point to the first coarse point P1 in the two-dimensional coordinate (s,λ) space. Therefore, the first occupancy coarse point P1 and the second occupancy coarse point P2 are likely associated with points of the same sensing object.

[0157] In one variant, the selected prediction radius rpred can be equal to the average of the at least two second radii r2,i.

[0158] exist Figure 24In an exemplary embodiment of the methods 100 and 200 shown, the selected prediction radius rpred can be selected from at least one second radius r2 associated with at least one second occupancy coarse point P2 and at least one third radius r3 associated with at least one third occupancy coarse point P3, the at least one third occupancy coarse point P3 having a sensor index λ3 equal to the first sensor index λ1 and a sample index s3 lower than the first sample index s1.

[0159] This exemplary embodiment is advantageous because it provides a good prediction radius in both cases where the new sensing point belongs to a new object or to a previously sensed object.

[0160] In an exemplary embodiment of methods 100 and 200, the method may further include: correcting a selected predicted radius rpred obtained from at least one second radius r2 (or r2,i) associated with at least one second occupancy coarse point P2 (or P2,i) having at least one second sample index s2 (or s2,i) by means of a first correction value C1 based on the at least one second sample index s2 (or s2,i) and the first sample index s1.

[0161] This exemplary embodiment is advantageous because it corrects for the difference in sample indices that may occur when the second sample index of the second coarse point is strictly lower than the first sample index:

[0162] rpred,corr=rpred+C1

[0163] In an exemplary embodiment of methods 100 and 200, the correction value C1 can be derived from derivatives estimated from two coarse occupancy points PO1 and PO2, which have different sample indices sO1 and sO2, the same sensor index (which may or may not be equal to the first sensor index λ1), and associated radii rO1 and rO2:

[0164]

[0165] in

[0166]

[0167] In an exemplary embodiment of methods 100 and 200, the derivative can be estimated from a set of coarse occupancy points PO,i having a sensing index sO,i, a radius rO,i, and the same sensor index. For example, the regression line of the equation r = a*s + b is obtained from these coarse occupancy points PO,i using the least mean method. The derivative is then taken as dr / ds ≈ a.

[0168] In an exemplary embodiment of methods 100 and 200, the method may further include: based on the at least one sensor index λ2 (or λ 2,i The second correction value C2 of the first sensor index λ1 is corrected from the value of the second sensor index λ2 (or λ) with at least one second sensor index λ2. 2,i The selected predicted radius rpred is obtained by at least one second radius r2 (or r2,i) associated with at least one second occupied coarse point P2 (or P2,i).

[0169] This exemplary embodiment is advantageous because it corrects for differences in sensor indices that may occur when the second sensor index, which occupies a coarse point, differs from the first sensor index:

[0170] rpred,corr=rpred+C2

[0171] In an exemplary embodiment of methods 100 and 200, the correction value C2 can be derived from derivatives estimated from two coarse occupancy points PO1 and PO2, which have different sensor indices λO1 and λO2, the same sample index (which may or may not be equal to the first sample index s1), and associated radii rO1 and rO2:

[0172]

[0173] in

[0174]

[0175] In an exemplary embodiment of methods 100 and 200, it is possible to obtain the sensor index λ from the sensor index λ. O,i The derivative is estimated using a set of coarsely occupied points PO,i with radius rO,i and the same sample index. For example, the regression line of the equation r = c*λ + d is obtained from these coarsely occupied points PO,i using the least mean square method. The derivative is then taken as dr / ds ≈ c.

[0176] In an exemplary embodiment of methods 100 and 200, the selected predicted radius rpred can be obtained as a radial function in response to the first sensor index s1 and the first sensor index λ1, and the radial function is obtained by linear regression of the second radius r2,i associated with at least two other second occupancy coarse points (P2,i) based on the second sample index s2,i and the second sensor index λ2,i of the at least two second occupancy coarse points P2,i.

[0177] For example, the linear function of the equation r = e*λ + f*s + g is obtained from the second approximate point P2,i, for example, through the least mean square method. The predicted radius rpred is obtained as follows.

[0178] rpred=e*λ1+f*s1+g

[0179] Figure 25 It shows Figure 17 A flowchart of the steps of a variant of method 100.

[0180] In step 105, for a first coarse occupancy point P1, a list of candidate radii L = {r2} is obtained. The list of candidate radii L includes at least one second radius r2 associated with at least one second coarse occupancy point P2, which has a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 less than or equal to the first sample index s1.

[0181] The at least one second occupancy rough point can also be based on... Figure 17 Any embodiment or variation thereof or any combination thereof discussed herein.

[0182] according to Figure 25 The at least one second occupancy coarse point P2 further satisfies at least one eligibility condition, which indicates that the radius associated with the at least one second occupancy coarse point P2 may reduce the dynamics of the residual radius rres.

[0183] In one embodiment of a variant of method 100, and according to... Figure 17 The radius associated with the selected occupancy coarse point in at least one embodiment or variant of the discussion, or any combination thereof, is excluded from the selection of the predicted radius rpred if the at least one occupancy coarse point does not meet the at least one eligibility criterion. The eligibility criterion is a screening process for occupancy coarse points, which can be based on... Figure 17 At least one embodiment or variant of the relevant discussion, or any combination thereof, may be selected.

[0184] In step 110, the predicted radius rpred is obtained from the list of candidate radii L for the first occupied coarse point P1.

[0185] In step 120, the data Ipred is encoded into bitstream B, where Ipred represents the selected predicted radius rpred from the list L of candidate radii.

[0186] In step 130, the residual radius rres is obtained and encoded into bitstream B.

[0187] In an exemplary embodiment of step 110, when a selected prediction radius rpred is selected from among a plurality of radii associated with a plurality of second and / or a plurality of third occupancy coarse points, the selected prediction radius rpred corresponds to a radius that minimizes the cost function representing the bit rate (for encoding the residual radius rres) or a trade-off between the target bit rate and distortion.

[0188] Figure 26 It shows Figure 18 A flowchart of the steps of a variant of method 200.

[0189] Consider a first coarsely occupied point P1 in a two-dimensional coordinate (s, λ) space. In the two-dimensional coordinate (s, λ) space, the first coarsely occupied point P1 has a first sample index s1 and a first sensor index λ1.

[0190] In step 105, for a first coarse occupancy point P1, a list of candidate radii L = {r2} is obtained. The list of candidate radii L includes at least one second radius r2 associated with at least one second coarse occupancy point P2, which has a second sensor index λ2 different from the first sensor index λ1 and a second sample index s2 less than or equal to the first sample index s1.

[0191] The at least one second occupancy rough point can also be based on... Figure 18 Any embodiments or variations thereof, or any combination thereof, relating to the discussion are available.

[0192] according to Figure 26 The at least one second occupancy coarse point P2 further satisfies at least one eligibility condition, which indicates that the radius associated with the at least one second occupancy coarse point P2 may reduce the dynamics of the residual radius rres.

[0193] In one embodiment of a variant of method 200, and according to... Figure 18 The radius associated with the occupancy coarse point selected in at least one embodiment or variant of the discussion, or any combination thereof, does not participate in the selection of the predicted radius rpred if the at least one occupancy coarse point does not meet the at least one eligibility criterion. The eligibility criterion is the occupancy coarse point, which can be determined based on... Figure 18 At least one embodiment or variant of the relevant discussion, or any combination thereof, may be selected.

[0194] In step 210, data Ipred is decoded from bitstream B. Data Ipred represents the selected predicted radius (rpred) in the list of candidate radii L.

[0195] In step 220, the residual radius rres is decoded from bitstream B.

[0196] In step 230, based on the residual radius rres and the selected predicted radius rpred obtained from the data Ipred and the list of candidate radii L = {r2}, the (decoded) radius r1 associated with the point represented by the first occupied coarse point (P1) is obtained.

[0197] exist Figure 24 In an exemplary embodiment of step 105 shown, the list of candidate radii L = {r2, r3} may further include at least one third radius r3 associated with at least one third occupancy coarse point P3, which has a third sensor index λ3 equal to the first sensor index λ1 and a third sample index s3 less than or equal to the first sample index s1.

[0198] This exemplary embodiment is advantageous because it provides a good prediction radius when the new sensing point belongs to a new object, and also provides a good prediction radius when the new sensing point belongs to a previously sensed object.

[0199] exist Figure 27 In an exemplary embodiment of the variants of the methods 100 and 200 shown, the eligibility criteria may be based on a comparison between the second sample index s2 of the second occupancy coarse point P2 and the third sample index s3 of the third occupancy coarse point P3.

[0200] From simple geometry, it is known that in the case of a sensed vertical plane, the dynamics of the residual radius rres relative to the predicted radius rpred, in the first approximation, are proportional to the distance |spred-s1|, where spred is the sample index of the second (or third) coarse point associated with the predicted radius rpred.

[0201] In one variant, such as Figure 27 As shown, when the second sample index s2 is greater than the third sample index s3, the second coarse point P2 can meet the eligibility criteria.

[0202] This exemplary embodiment allows the selection of the second coarse point instead of the third coarse point only if the eligibility criteria are met. In this case, the radius of the second coarse point is a better predicted radius than the radius associated with the third coarse point because the second coarse point is sensed later than the third coarse point.

[0203] In an exemplary embodiment of a variant of methods 100 and 200, the eligibility criteria may be based on a comparison of azimuth angles associated with sensors used to sense points in a point cloud associated with the first, second, and third occupied coarse points.

[0204] This exemplary embodiment uses a comparison of the azimuth angles associated with the occupancy rough points to determine whether a second or third rough point needs to be selected to predict the first radius r1. This exemplary embodiment is advantageous because comparing azimuth angles provides better accuracy than comparing sample indices.

[0205] In an exemplary embodiment of variants of methods 100 and 200, when the first azimuth difference A1 is lower than the second azimuth difference A2, the second occupancy rough point P2 may meet the eligibility criteria. The first azimuth difference A1 is the difference between the first azimuth angle φ1 associated with the first occupancy rough point P1 and the second azimuth angle φ2 associated with the second occupancy rough point P2:

[0206] A1 = |φ1 - φ2|

[0207] The second azimuth difference A2 is the difference between the first azimuth angle φ1 and the third azimuth angle φ3 associated with the third occupancy rough point P3:

[0208] A w = |φ1 - φ3|

[0209] For example, if A1 > A2, then the best prediction may be the radius associated with the third occupancy rough point, so the second occupancy rough point is ineligible. Conversely (A1 < A2), the second occupancy rough point is eligible.

[0210] In an exemplary embodiment of variants of methods 100 and 200, when the distance D3 is greater than the threshold th1, the second occupancy rough point P2 may meet the eligibility criteria:

[0211] D3 > th1

[0212] This exemplary embodiment is advantageous because it selects the radius associated with the second occupancy rough point P2 only when the gain expected from the selected prediction radius equal to the radius r2 is unlikely to compensate for the cost of signaling the additional syntax for using the radius r2.

[0213] The distance D3 between the second radius r2 associated with the second rough point P2 and the third radius r3 associated with the third rough point P3 can be calculated:

[0214] D3 = |r2 - r3|

[0215] In one variant, the third occupancy rough point P3 in the calculated distance D3 can be the nearest occupancy rough point, i.e., the third occupancy rough point minimizes the distance between the third sample index s3 of the third occupancy rough point P3 and the first sample index s1.

[0216] In an exemplary embodiment of variants of methods 100 and 200, the threshold th1 can be fixed.

[0217] In one variant, the threshold th1 can be based on the residual radius rres from previous encoding or decoding, which is associated with an occupancy coarse point where the sensor index is equal to the first sensor index λ1.

[0218] For example, the threshold th1 can be obtained from the average of the amplitudes |rres| of the residual radii rres from multiple previously encoded / decoded data at the same sensor index.

[0219] This variant is advantageous because it makes the threshold th1 suitable for the average prediction quality of the radius.

[0220] In an exemplary embodiment of variations of methods 100 and 200, a second occupancy coarse point P2 may satisfy a qualification criterion when the ratio of the gradient of the radius estimated from at least two previously encoded / decoded second occupancy coarse points PO,1 and PO,2 with respect to the gradient of the sample index is greater than a threshold:

[0221]

[0222] In one variant, to reduce sensitivity to noise, the gradient estimates of the radius and sample index can be obtained using two or more previously encoded / decoded second occupancy coarse points.

[0223] This exemplary embodiment is advantageous because it selects the radius associated with the second coarse occupancy point P2 only when the sensing point associated with it does not belong to a plane substantially perpendicular to the sensing direction, i.e., when the gradient dr / ds is small. Then, if the point belongs to a plane substantially perpendicular to the sensing direction, the radius associated with subsequent sensing points does not change (in the first approximation) as a function of the azimuth angle φ, and therefore changes slightly as a function of the sample index s. In this case, a prediction radius equal to the radius associated with the third coarse occupancy point P3 may provide better coding performance than a prediction radius equal to the radius associated with the second coarse occupancy point P2.

[0224] In an exemplary embodiment of variations of methods 100 and 200, the threshold th2 may correspond to the minimum angle αmin between the sensing direction and the normal direction to the sensing plane.

[0225] th2 = tan(αmin)

[0226] For example, a value such as αmin = 20° can be chosen.

[0227] Once at least one second radius r2 is obtained and confirmed as qualified, the encoder selects the best predictor from the third radius r3 and the at least one qualified second radius r2. Data I(pred) must be sent to the decoder so that the decoder knows which predictor was used.

[0228] In an exemplary embodiment of step 120 or 210, the data Ipred indicates whether the selected prediction radius rpred is equal to the second radius r2 or the third radius r3.

[0229] In an exemplary embodiment of step 120 or 210, the data Ipred may include binary data b, indicating whether the selected predicted radius rpred is the second radius r2 or the third radius r3.

[0230] For example, binary data b equal to 0 indicates that the selected prediction radius rpred is the second radius r2, and equal to 1 indicates that the selected prediction radius rpred is the third radius r3.

[0231] In an exemplary embodiment of step 120 or 210, the at least one second radius r2 can form a first radius list L1 = {r2}, and the at least one third radius r3 can form a second radius list L2 = {r3}. Then, binary data b can indicate whether the selected predicted radius rpred belongs to the first or second radius list.

[0232] In an exemplary embodiment of step 120 or 210, the data Ipred may further include a predictor index Idx, which indicates which radius in the first or second list of radii the selected prediction radius rpred is equal to.

[0233] In an exemplary embodiment of step 120 or 210, such as Figure 28 As shown, a list L = {r2, i} of a single second radius r2 and Np third radii r3, i (Np ≥ 1) can be used. 3,i In the selection menu, choose the chosen prediction radius rpred. The data (Ipred) includes the predictor index Idx. If the predictor index Idx is not equal to the predetermined index value IdxV, then the predictor index Idx indicates which radius r3 in the list the chosen prediction radius rpred is equal to; otherwise, the data Ipred further includes binary data fHV, indicating whether the chosen prediction radius rpred is equal to the second radius r2 or the third radius r3 in the radius list indicated by the predetermined index value IdxV.

[0234] According to this exemplary embodiment, when the predictor index Idx is equal to the predetermined index value IdxV, the predictor index Idx is first encoded, and optionally the binary data fHV is then encoded.

[0235] The index Idx can be unary encoded from a series of binary data fi.

[0236] For example, the predictor index Idx includes binary data f1( Figure 28 If the binary data f1 equals 1 (true), the predictor index Idx equals 1, and the predictor Idx indicates the radius r3,1 in the radius list. If f1 = 0 and f2 = 1, then the predictor index Idx equals 2, and Idx equals the predetermined index value IdxV (= 2). The data Ipred also includes the binary data fHV, which indicates the radius r3,2 in the radius list if fHV = 0, otherwise indicates a single second radius r2. If f1 = 0, f2 = 0, and f3 = 1, then the predictor index Idx equals 3, and indicates the radius r3,3 in the radius list, and so on.

[0237] Thus, the radius r3,i with an index lower than the predetermined index value IdxV is given priority. This is advantageous because it has been observed that the third radius associated with the most recent third occupancy coarse point is more likely to be the best predictor than the second radius associated with the second occupancy coarse point.

[0238] exist Figure 28 In the example, the predetermined index value IdxV is equal to 2, so only the third radius r3,1 associated with the nearest third occupied coarse point is given priority.

[0239] If the predictor list has indices in the range 0…Np-1, then the predefined index value IdxV is equal to 1 (instead of 2).

[0240] In an exemplary embodiment of step 120 or 210, the at least one second radius r2 and the at least one third radius r3 may form a single radius list L = {r2, r3}, and the data Ipred includes a predictor index indicating which radius in the radius list the selected predicted radius rpred is equal to.

[0241] This single list of radii may be established through a “competition” among predicted radii. In practice, local statistics depend, for example, on the location of the occupancy coarse point relative to the first occupancy coarse point P1, and can be obtained by selecting all predicted radii from previously encoded / decoded points.

[0242] In one variant, the radii of a single radius list are statistically sorted from most frequently selected to least frequently selected.

[0243] The radii in the radius list L are then sorted from most frequently selected to least frequently selected. This variant allows the use of several radii associated with the second coarse point and locally adapts to the structure of the point cloud.

[0244] Figure 29 A block diagram illustrating a system example that implements various aspects and example embodiments is shown.

[0245] System 300 can be embedded as one or more devices, including the various components described below. In various embodiments, system 300 can be configured to implement one or more aspects described in this application.

[0246] Examples of devices that may constitute all or part of system 300 include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, networked home appliances, networked vehicles and their associated processing systems, head-mounted display devices (HMDs, X-ray glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices or other communication devices for processing point clouds, video, or images. The elements of system 300 may be implemented individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 300 may be distributed across multiple ICs and / or discrete components. In various embodiments, system 300 may be communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports.

[0247] System 300 may include at least one processor 310 configured to execute instructions loaded thereon to implement various aspects as described in this application. Processor 310 may include embedded memory, input / output interfaces, and various other circuitry known in the art. System 300 may include at least one memory 320 (e.g., a volatile memory device and / or a non-volatile memory device). System 300 may include a storage device 340, which may include non-volatile memory and / or volatile memory, including but not limited to electrically erasable programmable read-only memory (EEPROM), read-only memory (ROM), programmable read-only memory (PROM), random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, disk drives, and / or optical drives. As a non-limiting example, storage device 340 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.

[0248] System 300 may include an encoder / decoder module 330 configured to, for example, process data to provide encoded / decoded point cloud geometric data, and the encoder / decoder module 330 may include its own processor and memory. The encoder / decoder module 330 may represent one or more modules that may be included in a device to perform encoding and / or decoding functions. It is well known that a device may include one or both of the encoding and decoding modules. Furthermore, the encoder / decoder module 330 may be implemented as a separate element of system 300, or may be integrated into processor 310 as a combination of hardware and software, as known to those skilled in the art.

[0249] Program code to be loaded onto processor 310 or encoder / decoder 330 to execute the various aspects described in this application may be stored in storage device 340 and subsequently loaded onto memory 320 for execution by processor 310. According to various embodiments, during the execution of the processes described in this application, one or more of processor 310, memory 320, storage device 340, and encoder / decoder module 330 may store one or more of various items. Such stored items may include, but are not limited to, point cloud frames, encoded / decoded geometry / attribute video / images or portions of encoded / decoded geometry / attribute video / images, bitstreams, matrices, variables, and intermediate or final results of equations, formulas, operations, and arithmetic logic processing.

[0250] In several embodiments, the memory within the processor 310 and / or encoder / decoder module 330 may be used to store instructions and provide working memory for processing that can be performed during encoding or decoding.

[0251] However, in other embodiments, external memory (e.g., the processing device may be processor 310 or encoder / decoder module 330) may be used for one or more of these functions. External memory may be memory 320 and / or storage device 340, such as dynamic volatile memory and / or non-volatile flash memory. In several embodiments, external non-volatile flash memory may be used to store the television's operating system. In at least one embodiment, fast external dynamic volatile memory such as RAM may be used as working memory for video encoding and decoding operations, for example, for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 Video), HEVC (High-Efficiency Video Coding), VVC (Various Video Coding), or MPEG-I Part 5 or Part 9.

[0252] Inputs to the components of system 300 can be provided by various input devices shown in block 390. Such input devices include, but are not limited to: (i) an RF section capable of receiving, for example, RF signals transmitted over the air by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.

[0253] In various embodiments, the input device of block 390 has associated corresponding input processing elements, as known in the art. For example, the RF section may be associated with elements necessary for: (i) selecting a desired frequency (also known as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) again limiting the band to a narrower band to select, for example, the signal band that may be referred to as a channel in some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired data packet stream. The RF section in various embodiments may include one or more elements to perform these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners that perform various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or near-baseband frequency) or baseband.

[0254] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted via a wired (e.g., cable) medium. The RF section can then perform frequency selection by filtering, down-converting, and re-filtering to the desired frequency band.

[0255] Various embodiments rearrange the order of the above (and other) elements, remove some of the elements, and / or add other elements that perform similar or different functions.

[0256] Adding components may include inserting components between existing components, such as, for example, inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section may include an antenna.

[0257] Furthermore, USB and / or HDMI terminals may include corresponding interface processors for connecting system 300 to other electronic devices via USB and / or HDMI connections. It is to be understood that various aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within processor 310, as needed. Similarly, various aspects of USB or HDMI interface processing may be implemented, as needed, within a separate interface IC or within processor 310. The demodulated, error-corrected, and demultiplexed streams may be provided to various processing elements, including, for example, processor 310 and encoder / decoder 330, which operate in conjunction with memory and storage elements to process the data streams as needed for presentation on an output device.

[0258] Various components of system 300 can be provided within an integrated housing. Within the integrated housing, various components can be interconnected and transmit data between them using appropriate connection arrangements 390, such as internal buses (including I2C buses) known in the art, wiring, and printed circuit boards.

[0259] System 300 may include a communication interface 350 capable of communicating with other devices via a communication channel 700. The communication interface 350 may include, but is not limited to, a transceiver configured to send and receive data via the communication channel 700. The communication interface 350 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 700 may be implemented, for example, in wired and / or wireless media.

[0260] In various embodiments, data can be streamed to system 300 using a Wi-Fi network such as IEEE 802.11. Wi-Fi signals from these embodiments can be received on a communication channel 700 and communication interface 350 suitable for Wi-Fi communication. The communication channel 700 in these embodiments can typically be connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top cloud communications.

[0261] Other embodiments may use a set-top box that transmits data via an HDMI connection through input block 390 to provide streaming data to system 300.

[0262] Other embodiments may use the RF connection of input block 390 to provide streaming data to system 300.

[0263] Streaming data can be used as a form of signaling information by system 300. Signaling information may include bitstream B and / or information such as the number of points in a point cloud, their coordinates, and / or sensor setting parameters.

[0264] It is important to note that signaling can be accomplished in various ways. For example, in various embodiments, one or more syntax elements, flags, etc., can be used to signal information to the corresponding decoder.

[0265] System 300 can provide output signals to various output devices, including a display 400, a speaker 500, and other peripheral devices 600. In various examples of embodiments, other peripheral devices 600 may include one or more of a standalone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 300.

[0266] In various embodiments, signaling such as AV.Link (audio / video link), CEC (consumer electronics control), or other communication protocols that enable device-to-device control with or without user intervention can be used to communicate control signals between system 300 and display 400, speaker 500, or other peripheral devices 600.

[0267] Output devices can be communicatively coupled to system 300 via dedicated connections through the corresponding interfaces 360, 370 and 380.

[0268] Alternatively, the output device can be connected to the system 300 via the communication interface 350 using the communication channel 700. The display 400 and speaker 500 can be integrated into a single unit with other components of the system 300 in electronic devices such as, for example, televisions.

[0269] In various embodiments, the display interface 360 ​​may include a display driver, such as, for example, a timing controller (TCon) chip.

[0270] Display 400 and speaker 500 may optionally be separate from one or more other components, for example, if the RF portion of input 390 is part of a separate set-top box. In various embodiments, display 400 and speaker 500 may be external components that can provide output signals via dedicated output connections, including, for example, an HDMI port, a USB port, or a COMP output.

[0271] exist Figure 1-29 This document describes various methods, and each method includes one or more steps or actions to implement the method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions can be modified or combined.

[0272] Examples of block diagrams and / or operation flowcharts are described. Each block represents a portion of circuitry, modules, or code, including one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in other implementations, the functions (one or more) marked in a block may occur out of order. For example, two blocks shown sequentially may actually execute substantially concurrently, or sometimes these blocks may be executed in reverse order.

[0273] The implementations and aspects described herein can be implemented, for example, in methods or processes, apparatus, computer programs, data streams, bit streams, or signals. Even if discussed only in the context of a single form of implementation (e.g., discussed only as a method), implementations of the discussed features can also be implemented in other forms (e.g., apparatus or computer programs).

[0274] The method can be implemented in a processor, which generally refers to a processing device, such as a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices.

[0275] Furthermore, the method can be implemented by instructions executed by a processor, and such instructions (and / or data values ​​generated by the implementation) can be stored on a computer-readable storage medium. The computer-readable storage medium can take the form of a computer-readable program product implemented in one or more computer-readable media and having computer-executable computer-readable program code implemented thereon. Considering the inherent ability to store information therein and the inherent ability to retrieve information provided therefrom, the computer-readable storage medium as used herein can be considered a non-transitory storage medium. The computer-readable storage medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices, or any suitable combination of the foregoing. It should be understood that while more specific examples of computer-readable storage media to which this embodiment can be applied are provided below, they are merely illustrative and not an exhaustive list, as will be readily recognized by those skilled in the art: portable computer floppy disks; hard disks; read-only memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable optical disc read-only memory (CD-ROM); optical storage devices; magnetic storage devices; or any suitable combination of the foregoing.

[0276] Instructions can form applications that are tangibly implemented on processor-readable media.

[0277] For example, instructions can be found in hardware, firmware, software, or a combination thereof. Instructions can be found, for example, in an operating system, a standalone application, or a combination of both. Therefore, a processor can be characterized as, for example, a device configured to execute a process and a device including a processor-readable medium (such as a storage device) having instructions for executing the process. Additionally, in addition to or instead of instructions, the processor-readable medium can store data values ​​generated by the implementation.

[0278] The device can be implemented, for example, in appropriate hardware, software, and firmware. Examples of such devices include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head-mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems comprising multiple displays), servers, video encoders, video decoders, post-processors that process the output from the video decoder, pre-processors that provide input to the video encoder, web servers, set-top boxes, and any other devices or communication devices used to process point clouds, video, or images. It should be clear that the equipment can be mobile and even mounted in mobile vehicles.

[0279] The computer software can be implemented by processor 310 or by hardware, or by a combination of hardware and software. As a non-limiting example, embodiments can also be implemented using one or more integrated circuits. Memory 320 can be of any type suitable for the technical environment and can be implemented using any suitable data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. Processor 310 can be of any type suitable for the technical environment and can encompass one or more of microprocessors, general-purpose computers, special-purpose computers, and processors based on multi-core architectures, as non-limiting examples.

[0280] As will be apparent to those skilled in the art, implementations can generate various signals formatted to carry, for example, information that can be stored or transmitted. The information may include, for example, instructions for performing a method or data generated by one of the described implementations. For example, the signal may be formatted to carry a bit stream of the described embodiments. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.

[0281] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms “an,” “a,” and “the” may also be intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that, when used in this specification, the terms “include / comprise” and / or “including / comprising” may specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Furthermore, when an element is referred to as “responding” or “connected” to another element, it may directly respond to or connect to the other element, or there may be intermediate elements. Conversely, when an element is referred to as “directly responding” or “directly connected” to another element, there are no intermediate elements.

[0282] It should be recognized that, for example, in the cases of “A / B,” “A and / or B,” and “at least one of A and B,” the use of any of the symbols / terms “ / ,” “and / or,” and “at least one” can be intended to cover the selection of only the first listed option (A), or only the second listed option (B), or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C,” such wording is intended to cover the selection of only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or the selection of all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to as many items as are listed.

[0283] Various numerical values ​​may be used in this application. Specific values ​​may be used for illustrative purposes and the aspects described are not limited to these specific values.

[0284] It will be understood that while the terms first, second, etc., may be used herein to describe various elements, these elements are not limited by these terms. These terms are used only to distinguish one element from another. For example, without departing from the teachings of this application, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. There is no implied order between the first element and the second element.

[0285] The references to “an exemplary embodiment” or “an exemplary embodiment” or “an implementation” or “implementation” and other variations thereof are frequently used to convey that a particular feature, structure, characteristic, etc. (described in connection with the embodiment / implementation) is included in at least one embodiment / implementation. Therefore, the phrases “in an exemplary embodiment” or “in an exemplary embodiment” or “in one implementation” or “in one implementation” appearing throughout this application, as well as any other variations, do not necessarily refer to the same embodiment.

[0286] Similarly, the references to "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" and their variations are frequently used to convey that a particular feature, structure, or characteristic (described in conjunction with an embodiment / example / implementation) may be included in at least one exemplary embodiment / example / implementation. Therefore, the expressions "according to an exemplary embodiment / example / implementation" or "in an exemplary embodiment / example / implementation" appearing throughout the specification do not necessarily refer to the same exemplary embodiment / example / implementation, nor are individual or alternative exemplary embodiments / examples / implementations necessarily mutually exclusive with other exemplary embodiments / examples / implementations.

[0287] The reference numerals appearing in the claims are for illustrative purposes only and do not limit the scope of the claims. Although not explicitly described, these embodiments / examples and variations may be employed in any combination or sub-combination.

[0288] When a diagram is presented as a flowchart, it should be understood that it also provides a block diagram of the corresponding apparatus. Similarly, when a diagram is presented as a block diagram, it should be understood that it also provides a flowchart of the corresponding method / process.

[0289] While some diagrams include arrows along the communication path to indicate the main direction of communication, it should be understood that communication can occur in the opposite direction to the arrows depicted.

[0290] Various implementations involve decoding. As used herein, "decoding" can encompass all or part of a process performed, for example, on received point cloud frames (which may include a received bitstream encoded with one or more point cloud frames) to produce a final output suitable for display or further processing in a reconstructed point cloud domain. In various embodiments, such processes include one or more processes typically performed by a decoder. In various embodiments, such processes may also, or optionally, include processes performed by a decoder of the various embodiments described herein.

[0291] As a further example, in one embodiment "decoding" may refer only to dequantization, in another embodiment "decoding" may refer to entropy decoding, in yet another embodiment "decoding" may refer only to differential decoding, and in still another embodiment "decoding" may refer to a combination of dequantization, entropy decoding, and differential decoding. It will be clear, and believed to be well understood, by those skilled in the art, whether the phrase "decoding process" is intended to specifically refer to a subset of operations or generally to a broader decoding process, depending on the context of the specific description.

[0292] Various implementations involve encoding. In a manner similar to the above discussion of "decoding," the term "encoding" as used herein can encompass all or part of a process, for example, performing on an input point cloud frame to generate an encoded bitstream. In various embodiments, such processes include one or more processes typically performed by an encoder. In various embodiments, such processes also include, or optionally include, processes performed by an encoder of the various embodiments described herein.

[0293] As a further example, in one embodiment "encoding" may refer only to quantization, in another embodiment "encoding" may refer only to entropy encoding, in yet another embodiment "encoding" may refer only to differential encoding, and in still another embodiment "encoding" may refer to a combination of quantization, differential encoding, and entropy encoding. It will be clear, and believed to be well understood, by those skilled in the art, whether the phrase "encoding process" is intended to specifically refer to a subset of operations or generally to a broader encoding process, depending on the context of the particular description.

[0294] Furthermore, this application may refer to "obtaining" various types of information. Obtaining information may include one or more of the following: estimation information, calculation information, prediction information, or information retrieved from memory.

[0295] Additionally, this application may refer to "accessing" various types of information. Accessing information may include one or more of the following: receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0296] Furthermore, this application may refer to "receiving" various types of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include one or more of the following: for example, accessing information or (e.g., retrieving information from memory). Additionally, "receiving" generally refers to actions such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information, in one or more ways.

[0297] Moreover, as used herein, the term "signal" specifically refers to instructing the corresponding decoder to do something. For example, in some embodiments, the encoder signals specific information, such as the number or coordinates of points in a point cloud or sensor setting parameters. In this way, in embodiments, the same parameter can be used on both the encoder and decoder sides. Thus, for example, the encoder can transmit (explicit signaling) a specific parameter to the decoder so that the decoder can use the same specific parameter. Conversely, if the decoder already has the specific parameter as well as other parameters, then signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various embodiments by avoiding the transmission of any actual functionality. It should be recognized that signaling can be accomplished in a variety of ways. For example, in various embodiments, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. Although the verb form of the term "signal" has been referred to above, the term "signal" can also be used as a noun herein.

[0298] Several implementations have been described. However, it should be understood that various modifications can be made. For example, elements of different implementations can be combined, supplemented, modified, or removed to produce other implementations. Furthermore, those skilled in the art will understand that other structures and processes can replace the disclosed structures and processes, and the resulting implementations will perform at least substantially the same functions in at least substantially the same manner to achieve at least substantially the same results as the disclosed implementations. Therefore, these and other implementations are contemplated in this application.

Claims

1. A method for encoding point cloud geometric data, wherein the point cloud geometric data is represented by ordered coarse points of multiple discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with the coarse point and a sample index associated with the sensing time when the point of the point cloud has been sensed, each coarse point being associated with a radius of distance from the point of the point cloud to a reference object, the reference object being the origin of a coordinate system constructed with a lidar head as the center, wherein the method includes: - For a first occupancy coarse point (P1) having a first sensor index (λ1) and associated with a first radius (r1), a selected prediction radius (rpred) is selected (110) from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1). - Encode (120) the data (Ipred) indicating whether the selected prediction radius (rpred) is equal to the second radius (r2) or the third radius (r3) into the bitstream; and - The residual radius (rres) between the first radius (r1) and the selected predicted radius (rpred) is predicted and encoded (130) into the bitstream.

2. A method for decoding point cloud geometric data, wherein the point cloud geometric data is represented by ordered coarse points at multiple discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points in the point cloud associated with the coarse point and a sample index associated with the sensing time when the point in the point cloud has been sensed, each coarse point being associated with a radius based on the distance of the point in the point cloud from a reference object, the reference object being the origin of a coordinate system constructed with a lidar head as the center, wherein the method includes: - For a first occupancy coarse point (P1) with a first sensor index (λ1), data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3) is decoded from the bitstream (210), the selected prediction radius (rpred) being selected from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1), wherein both the at least one second radius (r2) and the at least one third radius (r3) have been decoded; - For the first coarse-grained point (P1), decode (220) the residual radius (rres) from the bitstream; and -Based on the residual radius (rres) and the selected predicted radius (rpred) obtained from the data (Ipred), obtain (230) the radius (r1) associated with the point cloud for the first occupied coarse point (P1).

3. The method of claim 1 or 2, wherein the data (Ipred) includes binary data indicating whether the selected prediction radius (rpred) is a second radius (r2) or a third radius (r3).

4. The method of claim 3, wherein the at least one second radius (r2) forms a first radius list (L1 = {r2}), the at least one third radius (r3) forms a second radius list (L2 = {r3}), and binary data indicates whether the selected predicted radius (rpred) belongs to the first radius list or the second radius list.

5. The method of claim 4, wherein the data (Ipred) further includes a predictor index (Idx), the predictor index (Idx) indicating which radius in the first or second radius list the selected prediction radius (rpred) is equal to.

6. The method of claim 1 or 2, wherein the selected prediction radius is selected from a list (L = {r3}) of a single second radius (r2) and at least one third radius (r3), and the data (Ipred) includes a predictor index (Idx) such that if the predictor index (Idx) is not equal to a predetermined index value (IdxV), then the predictor index (Idx) indicates which radius (r3) in the list the selected prediction radius (rpred) is equal to; otherwise, the data (Ipred) further includes binary data (fHV) indicating whether the selected prediction radius (rpred) is equal to the second radius (r2) or equal to the third radius (r3) in the radius list indicated by the predetermined index value (IdxV).

7. The method of claim 1 or 2, wherein the at least one second radius and at least one third radius (r2, r3) form a single radius list (L = {r2, r3}), and the data (Ipred) includes a predictor index indicating which radius in the radius list the selected predicted radius (rpred) equals.

8. The method of claim 7, wherein the radii in a single radii list are statistically sorted from the most selected to the least selected.

9. An encoding device for point cloud geometric data, said point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with said coarse point and a sample index associated with a sensing time when the points of the point cloud have been sensed, each coarse point being associated with a radius of distance from the point of the point cloud to a reference object, said reference object being the origin of a coordinate system constructed centered on a lidar head, said device comprising at least one processor configured to: - For a first coarse occupancy point (P1) having a first sensor index (λ1) and associated with a first radius (r1), a selected prediction radius (rpred) is selected from at least one second radius (r2) associated with at least one second coarse occupancy point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third coarse occupancy point (P3) having a sensor index (λ3) equal to the first sensor index (λ1), wherein, Both the at least one second radius (r2) and the at least one third radius (r3) have been encoded; - Encode the data (Ipred) indicating whether the selected prediction radius (rpred) is equal to the second radius (r2) or the third radius (r3) into the bitstream; and - The residual radius (rres) between the first radius (r1) and the selected predicted radius (rpred) is predicted and encoded into the bitstream.

10. A decoding device for point cloud geometric data, said point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with said coarse point and a sample index associated with a sensing time when the points of the point cloud have been sensed, each coarse point being associated with a radius based on the distance of the point of the point cloud from a reference object, said reference object being the origin of a coordinate system constructed centered on a lidar head, said device comprising at least one processor configured to: - For a first coarse occupancy point (P1) having a first sensor index (λ1), data (Ipred) indicating from the bitstream whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3) is decoded, said selected prediction radius (rpred) being chosen from at least one second radius (r2) associated with at least one second coarse occupancy point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third coarse occupancy point (P3) having a sensor index (λ3) equal to the first sensor index (λ1), wherein, Both the at least one second radius (r2) and the at least one third radius (r3) have been decoded; - For the first coarse occupancy point (P1), decode the residual radius (rres) from the bitstream; as well as - Based on the residual radius (rres) and the selected predicted radius (rpred) obtained from the data (Ipred), obtain the radius (r1) associated with the point cloud for the first occupied coarse point (P1).

11. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method for encoding point cloud geometric data, the point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with the coarse point and a sample index associated with a sensing time at which the point of the point cloud has been sensed, each coarse point being associated with a radius of distance from the point of the point cloud to a reference object, the reference object being the origin of a coordinate system constructed centered on a lidar head, wherein the method comprises: - For a first occupancy coarse point (P1) having a first sensor index (λ1) and associated with a first radius (r1), a selected prediction radius (rpred) is selected (110) from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1). - Encode (120) the data (Ipred) indicating whether the selected prediction radius (rpred) is equal to the second radius (r2) or the third radius (r3) into the bitstream; and - The residual radius (rres) between the first radius (r1) and the selected predicted radius (rpred) is predicted and encoded (130) into the bitstream.

12. A non-transitory storage medium carrying instructions for program code to perform an encoding method for point cloud geometric data, the point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with the coarse point and a sample index associated with a sensing time when the point of the point cloud has been sensed, each coarse point being associated with a radius based on the distance of the point of the point cloud from a reference object, the reference object being the origin of a coordinate system constructed centered on a lidar head, wherein the method includes: - For a first occupancy coarse point (P1) having a first sensor index (λ1) and associated with a first radius (r1), a selected prediction radius (rpred) is selected (110) from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1). - Encode (120) the data (Ipred) indicating whether the selected prediction radius (rpred) is equal to the second radius (r2) or the third radius (r3) into the bitstream; and - The residual radius (rres) between the first radius (r1) and the selected predicted radius (rpred) is predicted and encoded (130) into the bitstream.

13. A computer program product comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method for decoding point cloud geometric data, the point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with the coarse point and a sample index associated with a sensing time in which the points of the point cloud have been sensed, each coarse point being associated with a radius of distance from the point of the point cloud to a reference object, the reference object being the origin of a coordinate system constructed centered on a lidar head, wherein the method comprises: - For a first occupancy coarse point (P1) with a first sensor index (λ1), data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3) is decoded from the bitstream (210), the selected prediction radius (rpred) being selected from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1), wherein both the at least one second radius (r2) and the at least one third radius (r3) have been decoded; - For the first coarse-grained point (P1), decode (220) the residual radius (rres) from the bitstream; and -Based on the residual radius (rres) and the selected predicted radius (rpred) obtained from the data (Ipred), obtain (230) the radius (r1) associated with the point cloud for the first occupied coarse point (P1).

14. A non-transitory storage medium carrying instructions for executing program code for a decoding method for point cloud geometric data, the point cloud geometric data being represented by ordered coarse points of a plurality of discrete locations in a set of discrete locations occupying a two-dimensional space, each coarse point being located in the two-dimensional space by a sensor index associated with a sensor sensing points of the point cloud associated with the coarse point and a sample index associated with a sensing time at which the point of the point cloud has been sensed, each coarse point being associated with a radius based on the distance of the point of the point cloud from a reference object, the reference object being the origin of a coordinate system constructed centered on a lidar head, wherein the method includes: - For a first occupancy coarse point (P1) with a first sensor index (λ1), data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3) is decoded from the bitstream (210), the selected prediction radius (rpred) being selected from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensor index (λ2) different from the first sensor index (λ1) and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensor index (λ3) equal to the first sensor index (λ1), wherein both the at least one second radius (r2) and the at least one third radius (r3) have been decoded; - For the first coarse-grained point (P1), decode (220) the residual radius (rres) from the bitstream; and -Based on the residual radius (rres) and the selected predicted radius (rpred) obtained from the data (Ipred), obtain (230) the radius (r1) associated with the point cloud for the first occupied coarse point (P1).

Citation Information

Patent Citations

  • Method and apparatus for encoding / decoding point cloud geometry data sensed by at least one sensor

    CN118120237A