Encoding / decoding method and apparatus for point cloud geometry data

CN121309854BActive Publication Date: 2026-09-29BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511414947.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-06-30
Publication Date
2026-09-29
Estimated Expiration
2042-06-30

AI Technical Summary

Technical Problem

[0035]将编码器和解码器的简便性、低延迟和由任何类型传感器感测的点云的压缩性能的要求结合在一起仍然是现有的点云编解码器尚未令人满意地解决的问题

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121309854B_ABST
    Figure CN121309854B_ABST
Patent Text Reader

Abstract

Methods and apparatuses are provided for encoding / decoding point cloud geometry data sensed by at least one sensor associated with a sensor index, the point cloud geometry data being represented by ordered coarse points of certain discrete positions of a set of discrete positions occupying a two-dimensional space. The method comprises, for a first occupied coarse point (P1) having a first sensor index (λ1) and being associated with a first radius (r1), selecting (110) a selected prediction radius (r pred ) from among at least one second radius (r2) associated with at least one second occupied coarse point (P2) and at least one third radius (r3) associated with at least one third occupied coarse point (P3), encoding (120) data (I pred ) into a bitstream indicating whether the selected prediction radius (r pred ) is equal to the second radius (r2) or to the third radius (r3).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of application number 202280064149.9, application date June 30, 2022, and invention title "Encoding / Decoding Method and Apparatus for Point Cloud Geometric Data". Technical Field

[0002] 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

[0003] 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.

[0004] 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.

[0005] 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.

[0006] 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.

[0007] 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.

[0008] 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.

[0009] 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.

[0010] 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.

[0011] 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.

[0012] 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.

[0013] Until recently, point cloud compression (also known as PCC) had not been solved by the mass market, and there was no standardized point cloud codec 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, namely...

[0014] • MPEG-I Part 5 (ISO / IEC 23090-5) or video-based point cloud compression (also known as V-PCC);

[0015] • MPEG-I Part 9 (ISO / IEC 23090-9) or geometry-based point cloud compression (also known as G-PCC)

[0016] The V-PCC encoding method compresses point clouds by projecting 3D objects multiple times to obtain 2D blocks packaged into images (or videos 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 projections of sparse geometry data sensed by LiDAR.

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

[0018] 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).

[0019] 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.

[0020] 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.

[0021] 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.

[0022] 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.

[0023] 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.

[0024] 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.

[0025] 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, until noise, only the radius r 3D The range of values ​​is continuous, while the angles φ and θ only take 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 .

[0026] 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.

[0027] 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 from the position of the angular coordinate space. This is achieved using the quasi-1D property (r) of the angular coordinate space. 2D ,φ i ,θ j Prediction trees directly encode angular coordinates (r) 2D The first version of the point position in (,φ,θ), where r 2D It is the projected radius on the horizontal xy plane, such as Figure 4 As shown. Then, spherical coordinates (r 2D The coordinates (x, y, z) 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.

[0028] 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.

[0029] 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.

[0030] 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.

[0031] 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.

[0032] 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 5 The 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.

[0033] 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.

[0034] 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.

[0035] 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.

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

[0037] 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.

[0038] 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.

[0039] 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.

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

[0041] 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.

[0042] 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.

[0043] 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.

[0044] 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.

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

[0046] 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.

[0047] 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.

[0048] 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.

[0049] 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.

[0050] 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.

[0051] 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.

[0052] 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.

[0053] 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

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

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

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

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

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

[0059] 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.

[0060] 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;

[0061] 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;

[0062] 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;

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

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

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

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

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

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

[0069] 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.

[0070] 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.

[0071] 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.

[0072] 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.

[0073] 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;

[0074] 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;

[0075] 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;

[0076] 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;

[0077] 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;

[0078] 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;

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

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

[0081] Figure 27 An example of a coarse point belonging to the neighborhood of the first occupied coarse point is illustrated schematically according to variations of methods 100 and 200;

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

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

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

[0085] 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.

[0086] 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.

[0087] 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.

[0088] 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.

[0089] For example, in the working group ISO / IEC JTC1 / SC29 / WG7 on MPEG3D 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 JTC1 / SC29 / WG7, MPEG3D Graphics Coding, "Technology Considered in G-PCC", August 31, 2021) in N00167.

[0090] Basically, for each sensing point P in the point cloud n The sensing point P is represented by a transformation. n 3D Cartesian coordinates of the 3D position (x n ,y n ,z n ), to obtain the sensing point P n The sensor index λ associated with the sensor 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. Point P n The sequential index o(P) n It can be obtained in the following ways:

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

[0092] Where K is the number of sensors.

[0093] Figure 9The 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 P n and P n+1 These represent the angles φ at time t1. 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.

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

[0095] 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.

[0096] 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.

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

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

[0099] 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.

[0100] Figure 12 The ordered coarse points are shown in a rough representation, with 5 occupied coarse points shown (black circles): two coarse points P. n and P n+1 Two points of the point cloud sensed at sensing time t1 are occupied (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).

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

[0102] 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:

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

[0104] 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 the radius r. 2D Equal to radius r 3D The projection on 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.

[0105] 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.

[0106] 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.

[0107] 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.

[0108] 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, but rather after the residual radius r is obtained from the following... res Encode

[0109] r res =r1-r pred

[0110] Where r pred It is the predicted radius.

[0111] The coding performance of radius r1 depends on the prediction radius r, which is determined to limit the dynamic range of the residual radius. pred The quality of the residual radius is relatively low. Smaller dynamics typically require fewer bits to be encoded into the bitstream.

[0112] Typically, the predicted radius r pred It 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 encoding efficiency when the radius r1 does not change much between two successive sensing moments (e.g., between sample index s1 and sample index s1-1).

[0113] 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 r pred It is very likely equal to the radius r of the previous encoding used for the same sensor λ1. pred,1 .

[0114] Of course, some objects can be placed on the road, such as Figure 14 As shown. In this case, the predicted radius r pred It may not be the previously encoded radius r pred,1 Instead, it is in the more distant past (j>1) of another previously encoded radius r pred,j , .

[0115] Therefore, the predicted radius r pred Typically, the radius is selected from a list that corresponds to previously encoded / decoded radii, which are 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 prediction of the radius r. predThat is, the previously encoded / decoded radii associated with points of the new object are not in the radius list.

[0116] This situation is as follows Figure 15 As shown, the new object O new Point P passes through another object O. old Prediction point P pred The prediction is based on the fact that point P is a new object O sensed by sensor λ1. new The first point. Therefore, the predicted radius r pred The first radius r1 is far from being associated with point P, and the residual radius r res The dynamics are large. Encoding such a residual radius is expensive in terms of bit rate.

[0117] 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. Improving prediction can reduce the residual radius r to be encoded. res The dynamics should allow for better compression performance.

[0118] In short, the present invention provides a solution to this problem by: selecting a predicted radius r associated with a point P in a point cloud encoded and represented by a first occupancy coarse point P1 having the first sensor index λ1 and the first sample index, from at least one second radius associated with at least one point sensed by a sensor that is associated with a sensor index different from the first sensor index λ1 and a sample index less than or equal to the first sample index s1. pred At least one second point of the point cloud is represented in the coarse representation by at least one second occupied coarse point.

[0119] 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.

[0120] For example, in Figure 16 Depicting and predicting point P pred An example of the associated selected prediction radius, where the prediction point is sensed by a sensor associated with a sensor index different from the first sensor index λ1. For example... Figure 15 As shown, with points P and P pred The residual radius between the associated radii compared to points P and P' pred The residual radius between associated radii has lower dynamics.

[0121] 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.

[0122] 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.

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

[0124] 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.

[0125] 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.

[0126] In step 110, the selected prediction radius r 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. pred 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.

[0127] 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.

[0128] 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.

[0129] In step 120, data Ipred It is encoded into bitstream B. Data I pred Indicates the selected prediction radius r pred .

[0130] In step 130, the first radius r1 and the selected predicted radius r are calculated. pred The difference between them yields the residual radius r. res :

[0131] r res =r1-r pred

[0132] The residual radius r res Encode it into bitstream B.

[0133] In an exemplary embodiment of step 110, when a selected prediction radius r is selected from the radii r2 associated with a plurality of second coarse occupancy points P2... pred When, the selected prediction radius r pred Corresponding to the cost function that minimizes the bit rate (used to encode the residual radius r) res (or the radius of the trade-off between the target bit rate and distortion.)

[0134] In one embodiment of step 130, the residual radius r can be notified by signaling. res The binary data is checked for equality with zero, and then a signal is sent to notify the residual radius r. res The sign of the binary data, for the residual radius r res Encode the remainder |r using the expGolomb encoder. res |-1 is used for encoding.

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

[0136] Without limiting the scope of the invention, the residual radius r can be used. res Any other encoding.

[0137] 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.

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

[0139] 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.

[0140] In step 210, data I is decoded from bitstream B. pred Data I pred This represents the selected prediction radius r chosen from at least one second radius r2 associated with at least one second occupancy coarse point P2. pred The at least one 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 the first sample index s1.

[0141] In step 220, the residual radius r is decoded from bitstream B. res .

[0142] In step 230, based on the residual radius r res and from data I pred The selected prediction radius r obtained pred Obtain the (decoded) radius r1 associated with the point cloud represented by the first coarse point P1:

[0143] r1 = r res +r pred

[0144] In one embodiment of step 230, the residual radius r can be notified by decoding the signal. res Whether the binary data is equal to zero, and possibly signaling the residual radius r through decoding. res The binary data with positive and negative signs, and possibly the remainder |r is decoded using the expGolomb decoder. res |-1, to decode the residual radius r res .

[0145] In one variant, the remainder ||Q(r) res )|-1 can be decoded using the expGolomb decoder, and the residual radius r res Obtained through the following:

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

[0147] Where IQ(Q(r) res )) represents the dequantized residual radius.

[0148] Without limiting the scope of the invention, the residual radius r can be used. res Any other decoding.

[0149] exist Figure 20 In an exemplary embodiment of methods 100 and 200 shown, the selected prediction radius r pred This can be equal to the second radius r2 associated with the second coarse occupancy point P2, such as the first distance D1 between the second sensor index λ2 and the first sensor index λ1 of the second coarse occupancy point P2, which is defined by the 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.

[0150] 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.

[0151] 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.

[0152] exist Figure 21 In an exemplary embodiment of methods 100 and 200 shown, the selected prediction radius r pred This can be equal to the second radius r2 associated with the second coarse-grained point P2, such as the second sample index s2 of the second coarse-grained point P2 and the second sample index s1 defined by the boundary W, which is the second distance D2 between them. Figure 21 In this context, the second approximate point P2 belongs to the gray shaded area and the boundary W equals 4.

[0153] 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.

[0154] 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.

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

[0156] 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.

[0157] According to this variant, the second occupancy coarse point P2 is a second sensor index λ that is different from the first sensor index λ1.

[0158] 2. The coarsely occupied point P2 is the second sample index P2, which is lower than or equal to the first sample index P1. The second coarsely occupied point P2 also satisfies the condition that the second distance D2 is minimized. Figure 22 In the diagram, these second coarse occupancy points belong to the gray shaded area, and the prediction radius r is selected by considering two second coarse occupancy points P2. pred .

[0159] exist Figure 23 In one exemplary embodiment of methods 100 and 200 shown, it can be based on at least two second occupancy coarse points P. 2,i At least two associated second radii r 2,i To select the chosen prediction radius r pred At least two second-occupying rough points P 2,i The second sample index s2 and the first sample index s1 have the same second distance D2. The selected prediction radius r pred Equal to the second coarse point P 2,i The associated second radius r 2,i The second point occupied by the coarse point P 2,i Or it has the nearest sensor index λ relative to the first sensor index λ1. 2,i (exist Figure 23 Point P on 2,i Or, in a variant, having a nearest sensor index λ1 less than the first sensor index λ1 (in Figure 23 Point P on 2,i-1 ).

[0160] 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.

[0161] 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.

[0162] In one variant, the selected prediction radius r pred It can be equal to the at least two second radii r 2,i The average value.

[0163] exist Figure 24 In an exemplary embodiment of methods 100 and 200 shown, the selected prediction radius r pred It 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, wherein the at least one third occupancy coarse point P3 has a sensor index λ3 equal to the first sensor index λ1 and a sample index s3 lower than the first sample index s1.

[0164] 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.

[0165] In an exemplary embodiment of methods 100 and 200, the method may further include: correcting, by means of a first correction value C1, at least one second occupancy coarse point P2 (or P1) having at least one second sample index s2 (or s2,i) and a first sample index s1, a coarse point P2 (or P1) with at least one second sample index s2 (or s2,i) and a first sample index s1. 2,i At least one second radius r2 (or r) associated with it 2,i The selected prediction radius r obtained pred .

[0166] 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:

[0167] r pred,corr =r pred +C1

[0168] In an exemplary embodiment of methods 100 and 200, the correction value C1 can be determined by the following dependence on two approximate points P. O1 and P O2 The estimated derivative, occupying two rough points P O1 and P O2 Each has a different sample index s O1 and s O2 The same sensor index (which may or may not be equal to the first sensor index λ1) and the associated radius r O1 and r O2 :

[0169]

[0170] in

[0171]

[0172] In an exemplary embodiment of methods 100 and 200, it is possible to obtain data from sources having sensing indexes s O,i radius r O,i A set of coarse points P occupied by the same sensor index O,i Estimate the derivative. For example, from these approximate points P using the least mean method. O,i The regression line of the equation r = a*s + b is obtained. The derivative is then taken as dr / ds ≈ a.

[0173] 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 At least one second occupied coarse point P2 (or P) 2,i At least one second radius r2 (or r) associated with it 2,i The selected prediction radius r obtained pred .

[0174] 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:

[0175] rpred,corr =r pred +C2

[0176] In an exemplary embodiment of methods 100 and 200, the correction value C2 can be determined by the following dependence on two approximate points P. O1 and P O2 The estimated derivative, occupying two rough points P O1 and P O2 Each has a different sensor index λ O1 and λ O2 The same sample index (which may or may not be equal to the first sample index s1) and the associated radius r O1 and r O2 :

[0177]

[0178] in

[0179]

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

[0181] In an exemplary embodiment of methods 100 and 200, the selected prediction radius r can be obtained. pred The response of the radial function to the first sensor index s1 and the first sensor index λ1, and wherein the radial function is obtained by means of at least two other second occupancy coarse points (P 2,i The associated second radius r 2,i Linear regression based on the at least two second occupied coarse points P 2,i Second sample indexes 2,i Second sensor index λ 2,i Obtained.

[0182] For example, the linear function of the equation r = e*λ + f*s + g originates from the second approximation point P. 2,i For example, it can be obtained through the least mean square method. The prediction radius r is obtained as follows: pred

[0183] r pred =e*λ1+f*s1+g

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

[0185] 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.

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

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

[0188] In one embodiment of a variant of method 100, and according to... Figure 17 The radius associated with the occupancy coarse point selected in at least one embodiment or variant of the relevant discussion, or any combination thereof, is not included in the predicted radius r if the at least one occupancy coarse point does not meet the at least one eligibility criterion. pred The selection criteria are based on a rough selection of occupied points, and can be determined according to... Figure 17 At least one embodiment or variant of the relevant discussion, or any combination thereof, may be selected.

[0189] In step 110, the predicted radius r is obtained from the candidate radius list L for the first coarse-grained point P1. pred .

[0190] In step 120, data I pred This data I is encoded into bitstream B. pred The selected predicted radius r in the list L of candidate radii. pred .

[0191] In step 130, the residual radius r is obtained. res And encode it into bitstream B.

[0192] In an exemplary embodiment of step 110, when selecting a selected prediction radius r from a plurality of radii associated with a plurality of second and / or a plurality of third occupancy coarse points... predWhen, the selected prediction radius r pred Corresponding to the cost function that minimizes the bit rate (used to encode the residual radius r) res (or the radius of the trade-off between the target bit rate and distortion.)

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

[0194] 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.

[0195] 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.

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

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

[0198] In one embodiment of a variant of method 200, and according to... Figure 18 The radius associated with at least one embodiment or variant of the discussed topic, or any combination thereof, is excluded from the prediction of radius r if the at least one coarse occupancy point does not meet the at least one eligibility criterion. pred The selection criteria are roughly based on [the available information]. Figure 18 At least one embodiment or variant of the relevant discussion, or any combination thereof, may be selected.

[0199] In step 210, data I is decoded from bitstream B. pred Data I pred The selected predicted radius (r) in the list L of candidate radii. pred ).

[0200] In step 220, the residual radius r is decoded from bitstream B.res .

[0201] In step 230, based on the residual radius r res and from data I pred The selected predicted radius r is obtained from the list of candidate radii L = {r²}. pred , obtain the (decoded) radius r1 associated with the point represented by the first occupied coarse point (P1).

[0202] 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.

[0203] 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.

[0204] 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.

[0205] From simple geometry, we know that in the case of a sensed vertical plane, the residual radius r res Relative to the prediction radius r pred The dynamics, in the first approximation, are related to the distance |s pred -s1| is proportional, where s pred Is it related to the predicted radius r? pred The associated sample index that occupies the second (or third) coarse point.

[0206] 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.

[0207] 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.

[0208] In an exemplary embodiment of a variant of methods 100 and 200, the eligibility condition may be based on a comparison of azimuth angles associated with the sensor that senses the points in the point cloud associated with the first, second and third coarse occupancy points.

[0209] This exemplary embodiment uses the comparison of azimuth angles associated with coarse occupancy points to determine whether it is necessary to select the second or third coarse point to predict the first radius r1. This exemplary embodiment is advantageous because comparing azimuth angles provides better accuracy than comparing sample indices.

[0210] In an exemplary embodiment of a variant of methods 100 and 200, when the first azimuth difference A1 is lower than the second azimuth difference A2, the second coarse occupancy point P2 may satisfy the eligibility condition. The first azimuth difference A1 is the difference between the first azimuth φ1 associated with the first coarse occupancy point P1 and the second azimuth φ2 associated with the second coarse occupancy point P2:

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

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

[0213] A2=|φ1-φ3|

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

[0215] In an exemplary embodiment of a variant of methods 100 and 200, when the distance D3 is greater than the threshold th1, the second coarse occupancy point P2 may satisfy the eligibility condition:

[0216] D3>th1

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

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

[0219] D3=|r2-r3|

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

[0221] In an exemplary embodiment of a variant of methods 100 and 200, the threshold th1 may be fixed.

[0222] In one variant, the threshold th1 can be based on the residual radius r from previous encoding or decoding. res The r res It is associated with the occupancy coarse point where the sensor index is equal to the first sensor index λ1.

[0223] For example, the threshold th1 can be derived from the residual radius r of multiple previously encoded / decoded data from the same sensor index. res Amplitude |r res | is obtained by averaging.

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

[0225] In an exemplary embodiment of variations of methods 100 and 200, when from at least two previously encoded / decoded second occupancy coarse points P O,1 and P O,2 The second coarse-grained point P2 can satisfy the eligibility criteria when the ratio of the gradient of the estimated radius to the gradient of the sample index is greater than a threshold.

[0226]

[0227] 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.

[0228] 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.

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

[0230] th2=tan(α min )

[0231] For example, you can choose α min =20°.

[0232] 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.

[0233] In an exemplary embodiment of step 120 or 210, data I pred Indicates the selected prediction radius r pred Is it equal to the second radius r2 or the third radius r3?

[0234] In an exemplary embodiment of step 120 or 210, data I pred It may include binary data b, indicating the selected prediction radius r pred Is it the second radius r2 or the third radius r3?

[0235] For example, binary data b equal to 0 indicates the selected prediction radius r. pred The second radius r2, equal to 1, indicates the selected predicted radius r. pred It is the third radius r3.

[0236] 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 the selected predicted radius r. pred Does it belong to the first or second radius list?

[0237] In an exemplary embodiment of step 120 or 210, data I pred It may further include a predictor index Idx, which indicates the selected prediction radius r. pred It equals which radius in the first or second list of radii.

[0238] In an exemplary embodiment of step 120 or 210, such as Figure 28 As shown, it is possible to achieve this with a single second radius r2 and N. p The third radius r 3,i (Np A list L = {r ≥ 1) 3,i Select the chosen prediction radius r pred Data (I) pred This includes the predictor index Idx, if the predictor index Idx is not equal to the predetermined index value Idx. V Then the predictor index Idx indicates the selected prediction radius r pred It equals which radius r3 in the list; otherwise, data I pred Further includes binary data f HV Indicates the selected prediction radius r pred Is it equal to the second radius r2, or is it determined by a predetermined index value Idx in the radius list? V The indicated third radius r3.

[0239] According to this exemplary embodiment, when the predictor index Idx is equal to the predetermined index value Idx V In this case, the predictor index Idx is first encoded, optionally followed by binary data f. HV Encoded.

[0240] Index Idx can be composed of a series of binary data f i Perform unary encoding.

[0241] 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 r in the radius list. 3,1 If f1 = 0 and f2 = 1, then the predictor index Idx equals 2, and Idx equals the predetermined index value Idx. V (=2), then data I pred It also includes binary data f HV If f HV =0, this binary data indicates the radius r in the radius list. 3,2 Otherwise, it 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 r in the radius list. 3,3 ,etc.

[0242] Thus, it has an index value lower than the predetermined index value Idx. V The radius r of the index 3,i Priority is given to the third radius. 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.

[0243] exist Figure 28In the example, the predefined index value Idx V The value equals 2, thus the third radius r is only associated with the nearest third occupancy coarse point. 3,1 Only then are they given priority.

[0244] If the predictor list has values ​​in 0…N p For indices in the range of -1, the predetermined index value Idx is... V It equals 1 (instead of 2).

[0245] In an exemplary embodiment of step 120 or 210, the at least one second radius r2 and the at least one third radius r3 can form a single radius list L = {r2, r3}, and data I pred Includes a predictor index, indicating the selected prediction radius r. pred It equals which radius in the radius list.

[0246] 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.

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

[0248] 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.

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

[0250] 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.

[0251] 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.

[0252] 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.

[0253] 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.

[0254] 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.

[0255] 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.

[0256] 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.

[0257] 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.

[0258] 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.

[0259] 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.

[0260] 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.

[0261] 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.

[0262] 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.

[0263] 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.

[0264] 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.

[0265] 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.

[0266] 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.

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

[0268] 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.

[0269] 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.

[0270] 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.

[0271] 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.

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

[0273] 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.

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

[0275] 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.

[0276] 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.

[0277] 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.

[0278] 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).

[0279] 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.

[0280] 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.

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

[0282] 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.

[0283] 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.

[0284] 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.

[0285] 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.

[0286] 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.

[0287] 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.

[0288] 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.

[0289] 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.

[0290] 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.

[0291] 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.

[0292] 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.

[0293] 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.

[0294] 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.

[0295] 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.

[0296] 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.

[0297] 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.

[0298] 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.

[0299] 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.

[0300] 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.

[0301] 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.

[0302] 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.

[0303] 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, the method comprising: - For a first occupancy coarse point (P1) having a first sensing elevation index and associated with a first radius (r1), a selected predicted 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 sensing elevation index different from the first sensing elevation index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation index equal to the first sensing elevation index, wherein both the at least one second radius (r2) and the at least one third radius (r3) have been encoded; - 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, the method comprising: - For a first occupancy coarse point (P1) with a first sensing elevation index, decode (210) from the bitstream data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3), 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 sensing elevation index different from the first sensing elevation index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation index equal to the first sensing elevation index, 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 predicted 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 ( The at least one third radius (r3) forms the second radius list ( The 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), which indicates which radius in the first or second radius list the selected prediction radius (rpred) is equal to.

6. The method as claimed in claim 1 or 2, wherein in the list of a single second radius (r2) and at least one third radius (r3) In the selection of the prediction radius, the data (Ipred) includes the predictor index (Idx) such that if the predictor index (Idx) is not equal to the predetermined index value (IdxV), 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 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 list of radii. ), and the data (Ipred) includes a predictor index indicating which radius in the radius list the selected prediction 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, the device comprising at least one processor configured to: - For a first occupancy coarse point (P1) having a first sensing elevation angle index 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 occupancy coarse point (P2) having a second sensing elevation angle index different from the first sensing elevation angle index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation angle index equal to the first sensing elevation angle index, 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, the device comprising at least one processor configured to: - For a first occupancy coarse point (P1) with a first sensing elevation angle index, decode from the bitstream data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3), said selected prediction radius (rpred) being chosen from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensing elevation angle index different from the first sensing elevation angle index, and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation angle index equal to the first sensing elevation angle index, 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; and - 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, wherein the method includes: - For a first occupancy coarse point (P1) having a first sensing elevation index and associated with a first radius (r1), a selected predicted 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 sensing elevation index different from the first sensing elevation index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation index equal to the first sensing elevation index, wherein both the at least one second radius (r2) and the at least one third radius (r3) have been encoded; - 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, wherein the instructions, when executed by a processor, are capable of implementing the following method: - For a first occupancy coarse point (P1) having a first sensing elevation index 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 sensing elevation index different from the first sensing elevation index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation index equal to the first sensing elevation index, wherein, Both the at least one second radius (r2) and the at least one third radius (r3) have been encoded; - 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, wherein the method includes: - For a first occupancy coarse point (P1) with a first sensing elevation index, decode (210) from the bitstream data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3), 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 sensing elevation index different from the first sensing elevation index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation index equal to the first sensing elevation index, 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, wherein the instructions, when executed by a processor, are capable of implementing the following method: - For a first occupancy coarse point (P1) with a first sensing elevation angle index, decode (210) from the bitstream data (Ipred) indicating whether the selected prediction radius (rpred) is equal to a second radius (r2) or a third radius (r3), said selected prediction radius (rpred) being chosen from at least one second radius (r2) associated with at least one second occupancy coarse point (P2) having a second sensing elevation angle index different from the first sensing elevation angle index and at least one third radius (r3) associated with at least one third occupancy coarse point (P3) having a sensing elevation angle index equal to the first sensing elevation angle index, 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

  • A method and device for encoding / decoding the geometry of a point cloud

    CN112673398A

  • Angular prior and direct coding mode for tree representation coding of a point cloud

    WO2021084293A1