Method and apparatus for coding a coarse representation of a point of a point cloud using diagonal coarse neighborhood information

By coding occupancy information using diagonal information between current and neighbor coarse points, the method enhances entropy coding efficiency and compression performance for point clouds, addressing inefficiencies in existing codecs.

WO2026156565A1PCT designated stage Publication Date: 2026-07-30BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
BEIJING XIAOMI MOBILE SOFTWARE CO LTD
Filing Date
2025-01-22
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

Existing point cloud codecs do not provide contexts for entropy coding certain parameters of a coarse representation of points, leading to degraded coding efficiency and compression performance, particularly in the transmission of Lidar data from moving vehicles.

Method used

The method involves coding occupancy information using diagonal information around and between current and already coded neighbor coarse points, incorporating diagonal distances and sensor index differences to enhance entropy coding efficiency.

Benefits of technology

This approach improves coding and compression performance by utilizing correlations around the current coarse point, making entropy coding more efficient and optimizing compression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025074098_30072026_PF_FP_ABST
    Figure CN2025074098_30072026_PF_FP_ABST
Patent Text Reader

Abstract

A method for coding a point cloud codes a coarse representation of one or more points of the point cloud. Coding the coarse representation includes coding occupancy information (fi) indicating an occupancy of a current coarse point. The occupancy information (fi) is coded using diagonal information between the current coarse point and an already coded neighbor coarse point.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND APPARATUS FOR CODING A COARSE REPRESENTATION OF A POINT OF A POINT CLOUD USING DIAGONAL COARSE NEIGHBORHOOD INFORMATIONTECHNICAL FIELD

[0001] The present invention generally relates to data compression, more specifically to methods and apparatus for coding (encoding / decoding) a point cloud, e.g., Lidar data acquired by a moving vehicle. Embodiments of the present invention concern methods and apparatus for coding a coarse representation of a point of a point cloud using diagonal coarse neighborhood information.BACKGROUND

[0002] Data compression is used in communications and computer networking to store, transmit, and reproduce information efficiently. For example, as a format for the representation of three-dimensional (3D) data, point clouds have recently gained attraction as they are versatile in their capability in representing all types of 3D objects or scenes. Therefore, many use cases can be addressed by point clouds, among which are · movie post-production, · real-time 3D immersive telepresence or VR  / AR (virtual reality  / augmented reality)  applications, · free viewpoint video, e.g., for sports viewing, · geographical information systems, also known as cartography, · culture heritage, e.g., the storage of scans of rare objects into a digital form, · autonomous driving, including 3D mapping of the environment and real-time Lidar  data acquisition (Lidar: Light Detection And Ranging = a method for measuring distances (ranging) by illuminating the target with laser light and measuring the reflection with a sensor) .

[0003] For example, for transmitting Lidar data acquired by a moving vehicle, existing point cloud codecs do not provide for contexts for entropy coding certain parameters of a coarse representation of points of a point cloud thereby degrading a coding efficiency and compression performance. However, for encoding and decoding point clouds, e.g., for transmitting Lidar data acquired by a moving vehicle, encoder and decoder efficiency simplicity and compression performance is important.

[0004] Thus, there is a need for improving the coding of a point cloud allowing for an improved coding efficiency and / or compression performance when coding certain parameters of a coarse representation points of the point cloud.SUMMARY

[0005] The present invention provides a method for coding a point cloud, the method comprising: coding a coarse representation of one or more points of the point cloud,  wherein coding the coarse representation includes coding occupancy information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is coded using diagonal information  around the current coarse point.

[0006] The present invention provides a method for coding a point cloud, the method comprising: coding a coarse representation of one or more points of the point cloud,  wherein coding the coarse representation includes coding occupancy information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is coded using diagonal information  between the current coarse point and an already coded neighbor coarse point.

[0007] The present invention provides a method for encoding a point cloud into a data stream, the method comprising: encoding into the data stream a coarse representation of one or more points of the  point cloud, wherein encoding the coarse representation includes encoding occupancy  information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is encoded using diagonal information  around the current coarse point.

[0008] The present invention provides a method for encoding a point cloud into a data stream, the method comprising: encoding into the data stream a coarse representation of one or more points of the  point cloud, wherein encoding the coarse representation includes encoding occupancy  information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is encoded using diagonal information  between the current coarse point and an already coded neighbor coarse point.

[0009] The present invention provides a method for decoding a point cloud from a data stream, the method comprising: decoding from the data stream a coarse representation of one or more points of the  point cloud, wherein decoding the coarse representation includes decoding occupancy  information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is decoded using diagonal information  around the current coarse point.

[0010] The present invention provides a method for decoding a point cloud from a data stream, the method comprising: decoding from the data stream a coarse representation of one or more points of the  point cloud, wherein decoding the coarse representation includes decoding occupancy  information (fi) indicating an occupancy of a current coarse point, and wherein the occupancy information (fi) is decoded using diagonal information  between the current coarse point and an already coded neighbor coarse point.

[0011] In accordance with embodiments, the occupancy information (fi) is coded using diagonal information around a neighborhood of the current coarse point.

[0012] In accordance with embodiments, the already coded neighbor coarse point is located in a predefined neighborhood of the current coarse point.

[0013] In accordance with embodiments, the diagonal information comprises information about a distance (Di) between the current coarse point and an already coded neighbor coarse point.

[0014] In accordance with embodiments, the already coded neighbor coarse point is located diagonal above, diagonal below or below the current coarse point.

[0015] In accordance with embodiments, a coarse point is represented using a coarse azimuthal angle and a sensor index, and wherein the coarse azimuthal angle and the sensor index of the already coded neighbor coarse point are different from the coarse azimuthal angle and the sensor index of the current coarse point.

[0016] In accordance with embodiments, the coarse azimuthal angle of the already coded neighbor coarse point is smaller than the coarse azimuthal angle of the current coarse point, and wherein the sensor index of the already coded neighbor coarse point is greater than or less than the sensor index of the current coarse point.

[0017] In accordance with embodiments, the already coded neighbor coarse point is represented by λaland Φal, with λal=λi±k and / or Φal=Φi-m, with λal sensor index of the already coded neighbor coarse point, λi sensor index of the current coarse point, Φal coarse azimuthal angle of the already coded neighbor coarse point, Φi coarse azimuthal angle of the current coarse point, k a positive or negative integer, and m a positive integer greater than zero.

[0018] In accordance with embodiments, the diagonal information is or includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k.

[0019] In accordance with embodiments, k is from a range [1, LaserNum-λi] , with LaserNum being a total number of beams of a sensor device.

[0020] In accordance with embodiments, the diagonal information is or includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, and wherein is larger or smaller than λi.

[0021] In accordance with embodiments, the diagonal information is determined as follows: with Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k.

[0022] In accordance with embodiments, the diagonal information is determined as follows: with Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, and wherein is larger or smaller than λi.

[0023] In accordance with embodiments, the already coded neighbor coarse point is a penultimate already coded neighbor coarse point, and wherein λal= λpenult=λi±2 and / or Φal=Φpenult=Φi-2, with λpenult =sensor index of the penultimate already coded neighbor coarse point,  Φpenult =coarse azimuthal angle of the penultimate already coded neighbor coarse  point.

[0024] In accordance with embodiments, the diagonal information is or includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k, k a value from [1, LaserNum-λi] , with LaserNum being a total number of  beams of a Lidar device.

[0025] In accordance with embodiments, the diagonal information is or includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, and wherein is larger or smaller than λi.

[0026] In accordance with embodiments, the diagonal information is determined as follows: with Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k.

[0027] In accordance with embodiments, the diagonal information is determined as follows: with Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, and wherein is larger or smaller than λi.

[0028] In accordance with embodiments, the occupancy information (fi) is coded using, in addition, an occupancy of neighboring coarse points belonging to a neighborhood of the current coarse point.

[0029] In accordance with embodiments, the occupancy information (fi) is coded using a hashed configuration, wherein a neighborhood configuration is determined using the occupancy of  neighboring coarse points, and wherein an input of a hash function for determining the hashed configuration  function comprises the neighborhood configuration and the diagonal information.

[0030] In accordance with embodiments, the occupancy information (fi) is coded using a context, wherein a neighborhood configuration is determined using the occupancy of  neighboring coarse points, wherein a hashed configuration is determined using a hash function receiving as  an input the neighborhood configuration and the diagonal information, and wherein the context is determined using the hashed configuration and the diagonal  information.

[0031] In accordance with embodiments, the occupancy information (fi) is coded using also a horizontal information around the neighborhood of the current coarse point.

[0032] In accordance with embodiments, the occupancy information (fi) is coded using also a horizontal information between the current coarse point and the already coded neighbor coarse point.

[0033] In accordance with embodiments, the horizontal information comprises information about a distance (Ci) between the current coarse point and an already coded neighbor coarse point, wherein the coarse azimuthal angle of the already coded neighbor coarse point is smaller than the coarse azimuthal angle of the current coarse point, and wherein the sensor indices of the already coded neighbor coarse point and the current coarse point are the same.

[0034] In accordance with embodiments, the occupancy information (fi) is coded using a hashed configuration, wherein a neighborhood configuration is determined using the occupancy of  neighboring coarse points, and wherein an input of a hash function for determining the hashed configuration  function comprises: - the neighborhood configuration and the diagonal information and the horizontal  information, or - the neighborhood configuration and a weighted average of the diagonal  information and the horizontal information.

[0035] In accordance with embodiments, the occupancy information (fi) is coded using a context, wherein a neighborhood configuration is determined using the occupancy of  neighboring coarse points, wherein a hashed configuration is determined using a hash function receiving as an input: - the neighborhood configuration and the diagonal information and the horizontal  information, or - the neighborhood configuration and a weighted average of the diagonal  information and the horizontal information, and wherein the context is determined using: - the hashed configuration and the diagonal information and the horizontal  information. - the hashed configuration and a weighted average of the diagonal information and  the horizontal information.

[0036] In accordance with embodiments, the occupancy information (fi) is entropy coded.

[0037] In accordance with embodiments, entropy coding the occupancy information (fi) uses Context-based Adaptive Binary Arithmetic Coding (CABAC) .

[0038] The present invention provides a non-transitory computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of any one of the of the embodiments described herein.

[0039] The present invention provides an apparatus for coding a point cloud, the apparatus comprising:  a processing module for coding a coarse representation of one or more points of  the point cloud, wherein, for coding the coarse representation, the processing module is configured  to code occupancy information (fi) indicating an occupancy of a current coarse point using diagonal information around the current coarse point.

[0040] The present invention provides an apparatus for coding a point cloud, the apparatus comprising: a processing module for coding a coarse representation of one or more points of  the point cloud, wherein, for coding the coarse representation, the processing module is configured  to code occupancy information (fi) indicating an occupancy of a current coarse point using diagonal information between the current coarse point and an already coded neighbor coarse point.

[0041] The present invention provides an encoder, the encoder comprising: an apparatus according to any one of the embodiments described herein.

[0042] The present invention provides an encoder, the encoder comprising: an encoder module, wherein the encoder module is configured to encode a point cloud according to the method of any one of the embodiments described herein.

[0043] The present invention provides a decoder, the decoder comprising: an apparatus according to any one of the embodiments described herein.

[0044] The present invention provides a decoder, the decoder comprising: an decoder module, wherein the decoder module is configured to decode a point cloud according to the method of any one of the embodiments described herein.

[0045] The technical solutions provided according to embodiments of the present disclosure have the following beneficial effects.

[0046] A state-of-the-art process for coding a coarse representation of one or more points of a point cloud, for coding occupancy information, does not fully make use of correlations around a coarse point. For example, to select a context to code a binary occupancy flag for the current point, also referred to as an i-th intermediate point, by an entropy coder, the prior art only makes use of horizontal information combined with a neighborhood configuration, which is associated with the i-th intermediate point. Correlations around the i-th intermediate point are not used, for example a distance between the i-th intermediate point and an already coded occupied coarse point that has a different coarse azimuthal angle or a different sensor index λ than the i-th intermediate point is not considered. This makes the entropy coding of the occupancy flag less efficient, and makes a compression performance of the coarse representation of the point cloud not optimal.

[0047] Embodiments of the present disclosure address the shortcomings in the prior art by providing a process for coding a coarse representation of one or more points of a point cloud, which, for coding occupancy information, make use of correlations around a currently processed coarse point, i.e., by taking into consideration a distance between the currently processed coarse point and an already coded occupied coarse point having a different sensor index or both a different coarse azimuthal angle and a different sensor index than the currently processed coarse point. Stated differently, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information around the current coarse point is used. In accordance with embodiments, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information between the current coarse point and an already coded neighbor coarse point may be used.

[0048] The present disclosure is advantageous because, other than in conventional approaches, by taking into consideration a distance between the currently processed coarse point and an already coded occupied coarse point having at least a different sensor index, the entropy coding of the occupancy flag is more efficient so that the coding and compression performance is improved.

[0049] It is to be understood that the content described in this section is not intended to identify key or critical features of the embodiment of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure become readily apparent from the following description.BRIEF DESCRIPTION OF THE DRAWINGS

[0050] The drawings are explanatory and serve to explain the present invention, and are not construed to limit the present invention to the illustrated embodiments.  Fig. 1 illustrates a spinning Lidar head including several spinning lasers for probe an  environment, Fig. 2 illustrates an elevation angle of a spinning laser of Fig. 1 relative to a horizontal  ground , Fig. 3 illustrates a 2D angular representation or (Ф, θ) plane and the points P thereon  as by the spinning Lidar of Fig. 1, Fig. 4 illustrates acquired points on a discrete (Ф, θ) representation,  Fig. 5 illustrates 3D coordinates and angle-based coordinates for a point of the point cloud. Fig. 6 illustrates an acquisition order in a (Ф, λ) plane associated with respective  lasers of a Lidar head, Fig. 7 illustrates points along an azimuthal angle and a laser index as obtained by a  real acquisition, Fig. 8 illustrates an ordering of points in a plane defined by a coarse azimuthal angle  and a laser index, Fig. 9 illustrates a representation of a point cloud by differences Δnext for a first  lexicographic order, Fig. 10 illustrates an encoder and an encoding method for encoding a coarse one-chain  representation of a Lidar-acquired point cloud, Fig. 11 illustrates a decoder and a decoding method for decoding a coarse one-chain  representation of a Lidar-acquired point cloud, Fig. 12 illustrates an intermediate point and its neighborhood, Fig. 13 illustrates a block diagram of encoding of flags signaling an occupancy of the  intermediate point of Fig. 12, Fig. 14 illustrates a flow diagram of a method for coding a point cloud in accordance  with an embodiment of the present disclosure, Fig. 15 illustrates an embodiment of coding an occupancy flag in accordance with the  present disclosure, Fig. 16 illustrates an intermediate point, its neighborhood and diagonal information  used for coding an occupancy of the intermediate point in accordance with an embodiment of the present disclosure, Fig. 17 illustrates an intermediate point, its neighborhood and diagonal information Di  used for coding an occupancy of the intermediate point in accordance with another embodiment of the present disclosure, Fig. 18 illustrates a flow diagram of a method for decoding a point cloud in accordance  with an embodiment of the present disclosure, Fig. 19 illustrates a block diagram of decoding from a bit stream flags signaling an  occupancy of an intermediate point in accordance with an embodiment of the present disclosure, Fig. 20 illustrates a flow diagram of a method for encoding a point cloud in accordance  with an embodiment of the present disclosure, Fig. 21 illustrates a block diagram of encoding into a bit stream flags signaling an  occupancy of an intermediate point in accordance with an embodiment of the present disclosure, Fig. 22 illustrates a flow diagram of an apparatus for coding a point cloud in  accordance with an embodiment of the present disclosure, Fig. 23 illustrates a block diagram of a decoder operating in accordance with  embodiments of the present disclosure, Fig. 24 illustrates a block diagram of an encoder operating in accordance with  embodiments of the present disclosure, Fig. 25 illustrates a data stream in accordance with embodiments of the present  disclosure, and Fig. 26 illustrates a block diagram illustrating an electronic device according to  embodiments of the present disclosure.DETAILED DESCRIPTION

[0051] Illustrative embodiments of the present disclosure are described below with reference to the drawings, where various details of embodiments of the present disclosure are included to facilitate understanding and are to be considered as illustrative only. Accordingly, those of ordinary skill in the art recognize that various changes and modifications of embodiments described herein can be made without departing from the scope of the present disclosure. Also, descriptions of well-known functions and constructions are omitted from the following description for clarity and conciseness.

[0052] In the present disclosure, the term "and / or" is intended to cover all possible combinations and sub-combinations of the listed elements, including any one of the listed elements alone, any sub-combination, or all of the elements, and without necessarily excluding additional elements.

[0053] In the present disclosure, the phrase "at least one of. . . or. . . " is intended to cover any one or more of the listed elements, including any one of the listed elements alone, any sub-combination, or all of the elements, without necessarily excluding any additional elements, and without necessarily requiring all of the elements.

[0054] In the present disclosure, the term “coding” refers to "encoding” or to “decoding” as becomes apparent from the context of the described embodiments. Likewise, the term “coder” refers to "an encoder” or to “adecoder” .

[0055] In the present disclosure, the terms “if” , “when” , “in case” , “responsive to” may be used interchangeably. Point cloud codecs

[0056] A point cloud is a set of points located in a 3D space, optionally with additional values attached to each of the points. These additional values are usually called point attributes. Consequently, a point cloud is combination of a geometry (the 3D position of each point) and attributes.

[0057] Attributes may be, for example, three-component colors, material properties, like reflectance, and / or two-component normal vectors to a surface associated with the point.

[0058] Point clouds may be captured by various types of devices, like an array of cameras, depth sensors, Lidars, scanners, or may be computer-generated, e.g., in a movie post-production. Depending on the use cases, point clouds may have from thousands to up to billions of points for cartography applications.

[0059] Raw representations of point clouds require a very high number of bits per point, with at least a dozen of bits per spatial component X, Y or Z, and optionally more bits for the one or more attributes, for instance three times 10 bits for the colors. A practical deployment of point-cloud-based applications requires compression technologies that enable the storage and distribution of point clouds with reasonable storage and transmission infrastructures.

[0060] The compression may be lossy, like in video compression, for the distribution to and visualization by an end-user, for example on AR / VR glasses or any other 3D-capable device. Other use cases do require a lossless compression, like medical applications or autonomous driving, to avoid altering the results of a decision obtained from an analysis of the compressed and transmitted point cloud. Point cloud compression in MPEG

[0061] Until recently, point cloud compression, also referred to as PCC, was not addressed 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 Moving Picture Experts Group or MPEG, initiated work items on point cloud compression which have led to two standards, namely: · MPEG-I Part 5 (ISO / IEC 23090-5) also referred to as Video-based Point Cloud  Compression (V-PCC) . · MPEG-I Part 9 (ISO / IEC 23090-9) also referred to as Geometry-based Point Cloud  Compression (G-PCC) .

[0062] The first versions of the V-PCC standard and the G-PCC standard were finalized respectively in 2020 and 2022.

[0063] The V-PCC coding method compresses a point cloud by performing multiple projections of a 3D object to obtain two-dimensional (2D) patches that are packed into an image or into a video, when dealing with moving point clouds. The images or videos are then compressed using existing image / video codecs, allowing for the leverage of already deployed image and video solutions. By its very nature, V-PCC is efficient only on dense and continuous point clouds because image / video codecs are unable to compress non-smooth patches in case they are obtained from the projection of, for example, Lidar acquired sparse geometry data.

[0064] The G-PCC coding method has two schemes for the compression of the geometry. · The first scheme is based on an occupancy tree representation of the point cloud  geometry, for example, by means of an octree representation, a quad tree representation or a binary tree representation. Occupied nodes are split down until a certain size is reached, and occupied leaf nodes provide the location of points, typically at the center of these nodes. By using neighbor-based prediction techniques, a high level of compression can be obtained for dense point clouds. Sparse point clouds are also addressed by directly coding the position of a point within a node with non-minimal size, by stopping the tree construction when only isolated points are present in a node, this technique is known as Direct Coding Mode (DCM) . · The second scheme is based on a predictive tree, in which each node represents the 3D  location of one point and the relation between nodes is a spatial prediction from the parent node to the child nodes. This method may only address sparse point clouds and offers the advantage of a lower latency and a simpler decoding when compared to using an occupancy tree. However, the compression performance is slightly better while, when compared to the first scheme, but the encoding is complex due to the need to intensively look for a best predictor among a long list of potential predictors when constructing the predictive tree.

[0065] In both schemes attribute coding / decoding, e.g., attribute encoding and attribute decoding, is performed after coding / decoding the complete geometry which, in turn, leads to a two-pass coding / decoding process. A low latency may be obtained by using slices that decompose the 3D space into sub-volumes that are coded independently, without prediction between the sub-volumes. However, this may heavily impact the compression performance when many slices are used.

[0066] An important use case is the transmission of Lidar data acquired by a moving vehicle. This, in general, requires a simple low-latency embarked encoder. Simplicity is required because the encoder is likely to be deployed on computing units which perform other processing in parallel, such as autonomous or semi-autonomous driving, thus limiting the processing power available to the point cloud encoder. Low latency is also required to allow for a fast transmission from the car to a cloud in order to have a real-time view of the local traffic, based on a multiple-vehicle acquisition, and take an adequate fast decision based on the traffic information. While the transmission latency can be low enough by using, e.g., a radio link in accordance with 5G (fifth-generation technology standard for cellular networks) , it is desired that the encoder itself does not introduce too much latency due to the coding. Also, the compression performance is extremely important since the flow of data from maybe millions of cars to the cloud is expected to be extremely heavy.

[0067] Combining encoder and decoder simplicity, low latency and compression performance is still a problem that has not been satisfactory solved by existing point cloud codecs. Compression of point clouds acquired by a rotating sensor

[0068] MPEG G-PCC addresses the coding of Lidar-acquired point cloud. Certain approaches related to the acquisition of Lidar data have been already exploited in G-PCC and have led to significant gains of compression. A first technique concerns the vertical angle, relative to the horizontal ground, of acquisition from a spinning Lidar. Fig. 1 illustrates a spinning Lidar head 100 that includes several spinning lasers 102a-102e that probe the environment by emitting respective laser beams 104a-104e. As is schematically illustrated at 106, the spinning Lidar head 100 rotates or spins around an axis of rotation 108. Fig. 2 illustrates an elevation angle θ of a spinning laser, like laser 102a of Fig. 1, relative to the horizontal ground 110. In accordance with certain approaches, the elevation angle θ is fixed.

[0069] Practically, the representation of the Lidar-acquired point cloud is not 3D but quasi 2D in the spherical coordinates (r3D, Φ, θ) , where r3D is 3D the distance of a point from the Lidar’s center, Φ is the azimuthal angle and θ the elevation angle.

[0070] G-PCC has gone even further by exploiting a second technique that take advantage of the regularity of laser sensing while the Lidar is spinning. Fig. 3 illustrates a 2D angular (Ф, θ) representation or (Ф, θ) plane 112 and the points P on the plane 112 acquired by the spinning Lidar 100. A regular distribution of the points P along the azimuthal angle Ф may be observed on the Lidar acquired data. This regularity is used to obtain a quasi 1D representation of the point cloud where, up to noise, only the radius r3D belongs to a continuous range of value while the angles Ф and θ take only a discrete number of values.

[0071] Basically, the point cloud geometry on the 2D discrete angular plane 112 may be represented together with a radius value for each point. Fig. 4 illustrates the acquired points P on the discrete (Ф, θ) representation 112, and this quasi 1D property has been exploited in G-PCC in both the occupancy tree and the predictive tree by predicting, in the spherical coordinate, the location of a current point relative to an already coded point by using the discrete nature of angles Ф, θ.

[0072] The occupancy tree uses DCM intensively and entropy codes the direct location of points P within a node by using a context-adaptive entropy coder. Contexts may be obtained from a local conversion of the point location into angular (Ф, θ) coordinates.

[0073] The predictive tree directly codes the angular coordinates (r2D, Ф, θ) before converting them into (x, y, z) coordinates and then coding respective x, y and z coordinate residuals to tackle errors of the coordinate conversion, the approximation of the laser angle and noise. Fig. 5 illustrates the 3D (x, y, z) coordinates and the angle-based coordinates (r2D, Ф, θ) or (r3D, Ф, θ) for a point of the point cloud, where r3D is the radius or distance from the Lidar head or from a laser of the Lidar head to the point P, and r2D is the projected radius on the horizontal (x, y) plane 112.

[0074] Thus, conventionally, there are mainly two types of a coding structure namely the occupancy tree and the predictive tree. Coarse representation

[0075] In the framework of rotating Lidar systems, a coarse one-chain representation of the Lidar-acquired point cloud may be used, as is described in more detail, e.g., in EP 4 020 816 A1 (EP application no. 20306672.5) , the content of which is incorporated by reference. When using this approach, all lasers are coded at once by using the order of acquisition. Fig. 6 illustrates by the arrows 114 the acquisition order in a plane 116 defined by the azimuthal angle Ф and a laser index λ associated with the respective lasers 102a-102e of the Lidar head 100. Due to the regular rotation of the Lidar head 100 and the continuous acquisition with a fixed time interval by each laser102a-102e, the azimuthal distance between two points, like P1 and P2 in Fig. 6, probed by the same laser is a multiple of an elementary azimuthal shift ΔФ.

[0076] Instead of coding the point location directly, a coarse representation may be coded. For example, a coarse representation (Фc, λ) of the point cloud geometry may be used to order the points using a lexicographic order, also referred to as a dictionary order, first in the coarse azimuthal angle Фc and second in the laser index λ or the sensing elevation angle index θ. Fig. 7 illustrates points P along the azimuthal angle Ф and the laser index λ as obtained by a real acquisition. Schematically, the points P are acquired in the order 114 shown in Fig. 7 in the (Ф, λ) plane. Due to the regular rotation of the Lidar head 100 and the continuous acquisition with a fixed time interval by each laser 102a-102e, the azimuthal distance between two points P1 and P2 probed by the same laser is a multiple of an elementary azimuthal shift ΔФ. Practically, not all points are acquired, i.e., the laser beam may not be reflected, there is acquisition noise and the laser may not be all perfectly aligned. Fig, 7 illustrates points P, i.e., real data, as obtained by a real acquisition. The coarse azimuthal angle Фc is simply obtained by the quantization of Ф as follows Фc = round (Ф / ΔФ) , and the order index o (P) of a point P is obtained by o(P) = Фc*Nlaser + λ.  where Nlaser is the number of lasers and λ is the index of the laser index, in [0, Nlaser-1] , that  has acquired the point P. The codec encodes the points P following their order o (P) monotonously, e.g., using an ascending order. Thus, the P points in Fig. 7 are coded in the order 118 depicted by the bold arrows in Fig. 8, which illustrates the ordering 118 of the points P in the plane 116 defined by the coarse azimuthal angle Фc and the laser index λ.

[0077] The coarse representation in the plane (Фc, λ) may be coded by · the number of points Npoints, · the value of (Фc, λ) for the first acquired point, · the Npoints-1 successive differences Δnext between a current point and a next point as  sorted by the lexicographic order.

[0078] Fig. 9 illustrates a representation of a point cloud by the differences Δnext for a first lexicographic order (Фc, λ) . As may be seen, the coarse representation comprises successive differences Δnext and the compression of the coarse representation is essentially based on the compression of the successive positive values Δnext.

[0079] An overview of an encoder and an encoding method for encoding a coarse one-chain representation of the Lidar-acquired point cloud as described above is shown in Fig. 10.

[0080] The encoder 200 receives a x, y, z point location. The encoder 200 converts 202 the x, y, z point location into a laser index λ, a coarse azimuthal angle Фc and a radius r2D, e.g., using a knowledge of a setup of the Lidar sensor 100. The differences Δnext are determined and the encoder 200 encodes 204 the differences Δnext into a data stream or bitstream 206, e.g., by entropy encoding. Also useful information on the Lidar sensor setup may be encoded into the bitstream 206, e.g., ΔФ and laser elevation angles.

[0081] The encoder 200 determines or computes a reconstructed azimuthal angle Фrec, e.g., directly from a dequantization ΔФ*Фc of the coarse azimuthal angle Фc. Optionally, a residual Фres may be computed as the difference Ф-ΔФ*Фc and encoded 208, e.g. by entropy encoding, into the bitstream 206. The residual Фres may be quantized 210 into Q(Фres) before encoding 208. In this case, the reconstructed azimuthal angle Фrec is obtained by Фrec = ΔФ*Фc + IQ (Q (Фres) )  where IQ stands for an inverse quantization process 212.

[0082] The radius r (here r2D) is also coded 208 into the bitstream 206, optionally after a quantization 210 into Q (r) . It is inverse quantized 212 to obtain a reconstructed radius rrec = IQ (Q (r) ) .

[0083] The reconstructed azimuthal angle Фrec and the reconstructed radius rrec are converted back 214 into x, y coordinates to obtain an estimation of the x location and the y location of the point: xestim = rrec·cos (Фrec) yestim = rrec·sin (Фrec)  The residuals xres and yres relative to the original point location x, y are obtained or  computed as xres = x -xestim yres = y -yestim, and are encoded 216 into the bitstream 206, e.g., by entropy encoding.

[0084] A vertical estimate zestim is obtained from the laser angle θ (λ) by zestim = rrec tan (θ (λ) )  and a residual zres relative to the original point location z is obtained or computed by zres = z -zestim and is encoded 216 into the bitstream 206.

[0085] An overview of a decoder and a decoding method for decoding a coarse one-chain representation of the Lidar-acquired point cloud as described above is shown in Fig. 11.

[0086] The decoder 300 receives a bitstream 302 and decodes 304 form the bitstream 302, e.g., by entropy decoding, the differences Δnext. Also useful information on the sensor setup, e.g., like ΔФ and laser elevation angles may be decoded from the bitstream 302. Then, the values of the laser index λ and the coarse azimuthal angle Фc are obtained 306 from Δnext.

[0087] The reconstructed azimuthal angle Фrec is obtained or computed. It may be obtained directly from a dequantization ΔФ*Фc of the coarse azimuthal angle Фc. Optionally, an azimuthal residual Фres may be decoded 308 from the bitstream 302. The decoded residual Фres may be a quantized version Q (Фres) of the residual Фres and the reconstructed azimuthal angle Фrec is obtained by Фrec = ΔФ*Фc + IQ (Q (Фres) )  where IQ stands for the inverse quantization process 310.

[0088] The radius r (here r2D) is also decoded 308 from the bitstream302 . The coded radius may be a quantized version Q (r) of the radius. It is inverse quantized 310 to obtain a reconstructed radius rrec = IQ (Q (r) ) .

[0089] Optionally, the radius may be predicted, e.g., by a precedingly coded radius, and a radius residual may be coded instead of the radius.

[0090] The reconstructed azimuthal angle Фrec and the reconstructed radius rrec are converted back 312 to x, y coordinates to obtain an estimation of the x location and the y location of the point: xestim = rrec·cos (Фrec) yestim = rrec·sin (Фrec)

[0091] The residuals xres and yres are decoded 314 from the bitstream 302 and the decoded horizontal location xdec and ydec of the point are computed or obtained by xdec = xestim + x ydec = yestim + yres.

[0092] A vertical estimate zestim is obtained from the laser angle θ (λ) by zestim = rrec tan (θ (λ) ) , and a residual zres is decoded 314 from the bitstream 302 and the decoded vertical location  zdec of the point is computed or obtained by zdec = zestim + zres.

[0093] As described above, encoding 204 the differences Δnext by the encoder 200 into a data stream and / or decoding 304 the differences Δnext by the decoder 300 from into a data stream may comprise entropy coding. A Lidar-acquired point cloud may be coded as is described, e.g., in EP 4 152 265 A1 (EP application no. 21306292.0) , the content of which is incorporated by reference. Occupancy flags fi, which indicate whether or not a value of Δnext is equal to i, are coded by - determining an occupancy configuration of a neighborhood of a coarse position  or point in the lexicographic order, which is a currently processed, also referred to herein as an intermediate point, the intermediate point corresponding to an i-th point after the last occupied point in the order of the coarse representations, - applying a hashing function to the occupancy configuration to obtain a hashed  configuration, and - code, by an entropy coder and based on the hashed configuration, the value of  the occupancy flag fi.

[0094] Fig. 12 illustrates a coarse position or point 350 in the lexicographic order, which is a currently processed and is also referred to herein as an the i-th intermediate point 350. Further, already coded and occupied neighbor coarse points 352 (illustrated by the filed circles points) and non-occupied positions 354 (illustrated by the dashed circles) are depicted. Also the last occupied point 356 and a next occupied point 358 are illustrated. The i-th intermediate point 350 is associated with the occupancy flag fi and its neighborhood 360. The neighborhood 360 is also referred to as a predefined or causal neighborhood as is described, e.g., in EP 4 152 265 A1 (EP application no. 21306292.0) , the content of which is incorporated by reference. The i-th intermediate point 350 is the coarse point whose order is equal to the order of the last occupied point 356 plus ‘i’ , in the lexicographic ordering of the coarse representation. In Fig. 12 the unoccupied coarse points 354 are delimited by dotted lines and the grey points 352 represent occupied coarse points. The order index difference between the last occupied point 356 and the next occupied point 358 equals 4, i.e., Δnext=4. The i-th intermediate point depicted in Fig. 12 is the second coarse point from the last occupied point 356, i.e., i=2, and the value of f2 is false as i≠4 (i≠Δnext) . The order of the next occupied point 358 is given by order next occupied point = order last occupied point + Δnext such that for i = Δnext the i-th or Δnext-th intermediate point is equal to the next occupied  point. This corresponds to the occupancy flag fΔnext being true.

[0095] Fig. 13 illustrates a block diagram of the encoding of Δnext using the flags fi signaling the occupancy of the i-th intermediate point. The order index difference Δnext equals 4 and is encoded by 3 binary occupancy flags f1, …, f3 having an index i not equal to the value Δnext (i≠ Δnext) and one occupancy flag f4 having the index i=4= Δnext. When starting the encoding of the value of the order difference Δnext, the variable ‘i’ is set to 1 at S100. This variable ‘i’ is incremented by one each time a flag fi equal to false is encoded into the bitstream. For each value of ‘i’ , the encoding process obtains the occupancies of neighbors S102, belonging to a neighborhood of the i-th intermediate point, and a neighborhood configuration is determined S104. For example, the configuration may be a word made of the concatenation of bits indicating the occupancy of each neighbor of the i-th intermediate point. The concatenation may be performed in a predetermined order of neighbors. Then, a hashing function is applied S106 to the neighborhood configuration to obtain a hashed configuration. The flag fi is encoded S108 in the bitstream by an entropy coder by using a probability of the flag to be true (or 1) that depends on the hashed configuration. In one example, the entropy coder is a binary arithmetic coder. In another example, the entropy coder is an adaptive binary coder (like CABAC) that uses a probability associated with a context Ctx to code a bit of information (here the occupancy bit) . In yet another example, the selection of the context Ctx used by the adaptive binary coder is performed at least based on the value of the hashed configuration. When a context is used, the process determines S110 the entropy coder context using the hashed configuration For example, a table Tctx of context may be used for the selection as follows: Ctx = Tctx [hashed configuration]

[0096] In addition to the neighborhood configuration, horizontal information Ci may be used as input of the hashing function S106 and, if entropy coder context is used, for the determination S110 of the entropy coder context. As is depicted in Fig. 12, the horizontal information Ci is a coordinate difference between the coarse azimuthal angle Фi of the current coarse point (the i-th intermediate point) 350 and the coarse azimuthal angle Фprec of a preceding occupied coarse point Pprec 362. The current and preceding occupied coarse points 350, 362 have a same sensor or laser index λi. For example when the coarse representation is defined in the two-dimensional coordinate (Φ , λ) space, the horizontal information Ci associated with an occupancy flag fi is determined or calculated as Ci = Φi –Φprec. In an example, as depicted in Fig. 12, the preceding occupied coarse point 362 is the penultimate occupied coarse point. As depicted in Fig. 12, the preceding occupied coarse point 362 may belong to the neighborhood, i.e., Ci is completely contained in the neighborhood occupancy configuration. In other examples, the preceding occupied coarse point may not belong to the neighborhood, i.e., Ci is not redundant with the neighborhood occupancy configuration.

[0097] When the encoded flag fi is false S112, the process increments S114 ‘i’ by one proceeds with encoding the next flag fi+1. Otherwise, when the encoded flag fi is true S112, the encoding process proceeds S116 with the encoding of the next order difference Δnext. Using diagonal coarse neighbor information for coding LIDAR point cloud

[0098] As has been described above with reference to Fig. 12 and Fig. 13, to select the context index ctxIdx, which is used to code the binary occupancy flag fi for the i-th intermediate point by an entropy coder, the prior art method only makes use of the horizontal information Cicombined with the neighborhood configuration associated with the i-th intermediate point. Thus, the conventional approach does not fully make use of correlations around the i-th intermediate point, for example it does not consider the distance between the i-th intermediate point and occupied coarse point that has a different coarse azimuthal angle and a different sensor index λ than the i-th intermediate point. This makes the entropy coding of the flag fi less efficient. Further, this makes the compression performance of the coarse representation of the point cloud not optimal.

[0099] Embodiments of the present disclosure address the shortcomings in the prior art by providing a process for coding a coarse representation of one or more points of a point cloud, which, for coding occupancy information, make use of correlations around a currently processed coarse point, i.e., by taking into consideration a distance between the currently processed coarse point and an already coded occupied coarse point having a different sensor index or both a different coarse azimuthal angle and a different sensor index. Stated differently, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information around the current coarse point is used. In accordance with embodiments, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information or a distance between the current coarse point and an already coded neighbor coarse point may be used. It is noted that the distance or diagonal distance between the currently processed coarse point (also referred to herein as the i-th intermediate point in coarse representation) and an already coded occupied coarse point (also referred to herein as the referred neighbor coarse point) is based on the above mentioned coarse azimuth angles Φc which are obtained by quantizing the actual azimuth angles Φ, not onthe different “actual” azimuthal angles Φ therebetween. An advantage of using the coarse azimuthal angle is that it can make the determination or calculation of the distances simpler.

[0100] The present disclosure is advantageous because, other than in conventional approaches, by taking into consideration a distance between the currently processed coarse point and an already coded occupied coarse point having at least a different sensor index, the entropy coding of the occupancy flag is more efficient so that the coding and compression performance is improved. This improves the entropy coder performance for coding an occupancy flag fi for an i-th intermediate point by adding the diagonal information (relative to the i-th intermediate point) when determining the entropy coder context.

[0101] Fig. 14 illustrates a flow diagram of a method for coding a point cloud, like a Lidar acquired point cloud, in accordance with an embodiment. The method includes the following: S200: Coding a coarse representation of one or more points of the point cloud. Coding the coarse representation includes entropy coding S202 occupancy information (fi)  indicating an occupancy of a current coarse point. The occupancy information (fi) is coded using diagonal information around the current coarse point. In accordance with embodiments, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information between the current coarse point and an already coded neighbor coarse point may be used.

[0102] Embodiments of the present disclosure provide a method of encoding / decoding, into / from a bitstream, a three-dimensional position of points (P) of a point cloud, wherein - the three-dimensional positions of points (P) are represented at least by a  two-dimensional coarse representation made of coarse points, - a binary information (fi) indicating the occupancy of a current coarse points  (i-th intermediate point) is encoded / decoded into / from the bitstream, and - the decoding of the occupancy information (fi) is performed also based on at  leastdiagonal information around a neighborhood of the current coarse point (i-th intermediate point) . In accordance with embodiments, decoding the occupancy information indicating an occupancy of a current coarse point, uses diagonal information between the current coarse point and an already coded neighbor coarse point.

[0103] In accordance with embodiments of the present disclosure, the diagonal information Di may be determined as a diagonal distance between a referred neighbor coarse point (also referred to herein as an already coded neighbor coarse point) and the i-th intermediate point (also referred to herein as the current coarse point) in the coarse representation, and the referred neighbor coarse point has at least a different sensor index from the i-th intermediate point. In accordance with embodiments, the referred neighbor coarse point has a different coarse azimuthal angle and a different sensor index from the i-th intermediate point.

[0104] In accordance with embodiments of the present disclosure, the diagonal information Dimay be determined as follows:

[0105] In accordance with embodiments of the present disclosure, the diagonal information Di may be determined as follows:

[0106] In accordance with embodiments of the present disclosure, the diagonal information Di may be determined by:

[0107] In accordance with embodiments of the present disclosure, the diagonal information Di may be determined by

[0108] In accordance with embodiments of the present disclosure, encoding / decoding of the occupancy information (fi) is performed also based on the occupancy of neighboring coarse points belonging to a neighborhood of the current coarse point.

[0109] In accordance with embodiments of the present disclosure, the diagonal information Di is used as an input into a hash function to determine, together with a one or more neighbor configurations, context (s) for an entropy coder.

[0110] In accordance with embodiments of the present disclosure, encoding / decoding of the occupancy information (fi) is performed also based on horizontal information Ci.

[0111] In accordance with embodiments of the present disclosure, a weighted average of the horizontal information Ci and the diagonal information Di is determined or calculated and used as an input into a hash function to determine, together with one or more neighbor configurations, context (s) for entropy encoding / decoding the occupancy information (fi) .

[0112] In accordance with embodiments of the present disclosure, the horizontal information Ci and the diagonal information Di are both used as independent inputs into a hash function to determine, together with one or more neighbor configurations, context (s) for entropy encoding / decoding the occupancy information (fi) .

[0113] Fig. 15 illustrates an embodiment of coding an occupancy flag in accordance with the present disclosure. The occupancy flags fi indicate whether or not the value of Δnext is equal to i. Coding the occupancy flag includes: - determining S210 an occupancy configuration of a neighborhood (optionally  also horizontal information Ci) of an intermediate point, - determining S212 diagonal information relative to the i-th intermediate point, - applying S214 a hashing function to combined information to obtain a hashed  configuration, the combined information including the occupancy configuration and the diagonal information Di and, optionally, horizontal information Ci, and - coding S216, by an entropy coder and based on the hashed configuration, the  value of the flag fi. Determining the diagonal information

[0114] In accordance with embodiments, the diagonal information Di is determined as a diagonal distance between referred neighbor coarse point and the i-th intermediate point in the coarse representation, with the referred neighbor coarse point having at least a different sensor index than the i-th intermediate point. In accordance with embodiments, the referred neighbor coarse point has a different coarse azimuthal angle and a different sensor index than the i-th intermediate point.

[0115] Fig. 16 illustrates an intermediate point, its neighborhood and diagonal information used for coding an occupancy of the intermediate point in accordance with an embodiment of the present disclosure. Like Fig. 12, Fig. 16 illustrates a coarse position or point 350 in the lexicographic order, which is a currently processed and is also referred to herein as an the i-th intermediate point 350. Further, already coded and occupied neighbor coarse points 352 (illustrated by the filed circles points) and non-occupied positions 354 (illustrated by the dashed circles) are depicted. Also the last occupied point 356 and a next occupied point 358 are illustrated. The i-th intermediate point 350 is associated with the occupancy flag fi and its neighborhood 360. The neighborhood 360 is also referred to as a causal neighborhood. The i-th intermediate point 350 is the coarse point whose order is equal to the order of the last occupied point 356 plus ‘i’ , in the lexicographic ordering of the coarse representation. In Fig. 12 the unoccupied coarse points 354 are delimited by dotted lines and the grey points 352 represent occupied coarse points. The order index difference between the last occupied point 356 and the next occupied point 358 equals 4, i.e., Δnext=4. The i-th intermediate point depicted in Fig. 12 is the second coarse point from the last occupied point 356, i.e., i=2, and the value of f2 is false as i≠4 (i≠ Δnext) . The order of the next occupied point 358 is given by order next occupied point = order last occupied point + Δnext such that for i = Δnext the i-th or Δnext-th intermediate point is equal to the next occupied  point. This corresponds to the occupancy flag fΔnext being true.

[0116] As is depicted in Fig. 16, the diagonal information Di is a coordinate difference between the coarse azimuthal angle Фi and the sensor or laser index λi of the current coarse point (the i-th intermediate point) 350 and the sensor or laser index λi+2 and the coarse azimuthal angle Фpenult of the referred neighbor coarse point 364 (also referred to herein as an already coded neighbor coarse point) . In the embodiment depicted in Fig. 16, the referred neighbor coarse point 364 is a penultimate occupied coarse point. In accordance with embodiments, a penultimate occupied coarse point is a previously occupied point two sensor indices above / below the current point, e.g., it is a previously second occupied point from the current coarse point (i-th intermediate point) along the lasers with a laser or sensor index λi ± 2 of the i-th intermediate point (penultimate is calculated in the Ф direction) . According to embodiments, the penultimate occupied coarse point may be two coarse azimuthal angles left of the current point. As depicted in Fig. 16, the referred neighbor coarse point 364 may not belong to the neighborhood, i.e., Di is not redundant with the neighborhood occupancy configuration. In accordance with other embodiments, the referred neighbor coarse point 364 may belong to the neighborhood, i.e., Di is completely contained in the neighborhood occupancy configuration. As depicted in Fig. 16, the referred neighbor coarse point 364 may be located above and left of the i-th intermediate point 350. However, the present invention is not limited to this. In accordance with other embodiments, the referred neighbor coarse point may be located below and left of the i-th intermediate point 350 (see point 364’a nd the dashed arrow in Fig. 16 having a coarse azimuthal angle Фpenult and a senor index λ different than the point 350) . In accordance with yet other embodiments, the referred neighbor coarse point may be located below the i-th intermediate point 350 (same coarse azimuthal angle Фi but different senor index λthan the point 350) .

[0117] In accordance with embodiments, the diagonal information Dimay be determined as follows: where is the coarse azimuthal angle of the penultimate already coded point 364  with the next k-th sensor index λi+k ofthe i-th intermediate point 350 (λi is sensor index of the i-th intermediate point 350) , k may be a integer value and with a range of [1, LaserNum-λi] , and LaserNum is a total number beams of a Lidar device. The value of Di corresponds to the length for the arrow in Fig. 16, when k=2.

[0118] In accordance with an embodiment, to be simpler, the diagonal information Di may be determined by:

[0119] In accordance with other embodiments, rather than determining the diagonal information Di using the coarse azimuthal angles of the points 350, 364, also the sensor index λ may be used. Fig. 17 illustrates an intermediate point 350, its neighborhood 360 and diagonal information Di used for coding an occupancy of the intermediate point in accordance with an embodiment of the present disclosure. Other than in Fig. 16, the diagonal information Di is a coordinate difference between the referred neighbor coarse point 364” having a coarse azimuthal angle Фi-1 and a sensor or laser index λi+2 and the current coarse point (the i-th intermediate point) 350 having the coarse azimuthal angle Фi and the sensor or laser index λi. Also in the embodiment depicted in Fig. 17, the referred neighbor coarse point 364” is a penultimate occupied coarse point, however, other than in the embodiment of Fig. 16, the sensor index λ is used for determining the diagonal information Di as follows: where is the sensor index of the penultimately already coded point 364” with a  previous m-thΦ index of the i-th intermediate point 350, and with being larger than λi. In Fig. 17, the value of Di corresponds to the length for the arrow Di, 11(when m=1) .

[0120] In accordance with an embodiment, to be simpler, the diagonal information Di may be determined by:

[0121] In the embodiments described above with reference to Fig. 16 and Fig. 17, the already coded neighbor coarse point 364, 364” is assumed to be a penultimate already coded neighbor coarse point, with λpenult=λi+2 and Φpenult=Φi-2 for point 364, λpenult=λi+2 and Φpenult=Φi-1 for point 364” , with λpenult sensor index of the penultimate coarse point 364, 364” , Φpenult coarse azimuthal angle of the penultimate coarse point 364, 364” .

[0122] The present disclosure is not limited to the use of the penultimately already coded point. In accordance with other embodiments, the already coded point may be a different point, e.g., any other already coded point, like point 364’ . More specifically, the already coded neighbor coarse point may be represented by λaland Φal, with λal=λi±k and / or Φal=Φi-m, with λal sensor index of the already coded neighbor coarse point, λi sensor index of the current coarse point, Φal coarse azimuthal angle of the already coded neighbor coarse point,  Φi coarse azimuthal angle of the current coarse point, k a positive or negative integer, and m a positive integer greater than zero.

[0123] In accordance with embodiments, the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k.

[0124] In accordance with embodiments, this may be simplified by determining the diagonal information as follows: with Di distance between the current coarse point and the already coded neighbor  coarse point, coarse azimuthal angle of the already coded neighbor coarse point having a  sensor index λi+k, k from a range [1, LaserNum-λi] , with LaserNum being a total number of  beams of a sensor device.

[0125] In accordance with other embodiments, the diagonal distance is determined as follows: with: Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, wherein is larger or smaller than λi.

[0126] In accordance with embodiments, this may be simplified by determining the diagonal information as follows: or Di=λal-λi with Di distance between the current coarse point and the already coded neighbor  coarse point, sensor index of the already coded neighbor coarse point having a coarse  azimuthal angleΦi-m, wherein is larger or smaller than λi.

[0127] Thus, in accordance with embodiments, λal is the sensor index associated with any one of the already coded points and is not necessarily probed by the same sensor λi as the i-th intermediate point. Thus, in accordance with embodiments, the i-th intermediate point and the already coded point may be probed by the same sensor. In accordance with other embodiments, the i-th intermediate point and the already coded point may be probed by different sensors. Decoding Process

[0128] Fig. 18 illustrates a flow diagram of a method for decoding a point cloud, like a Lidar acquired point cloud, in accordance with other embodiments. The method includes the following: S500: Receiving a data stream. S502: Decoding from the data stream a coarse representation of one or more points of  the point cloud. Decoding the coarse representation includes entropy decoding S504 occupancy information  (fi) indicating an occupancy of a current coarse point. The occupancy information (fi) is decoded using diagonal information around the current coarse point. In accordance with embodiments, for decoding occupancy information indicating an occupancy of a current coarse point, diagonal information between the current coarse point and an already coded neighbor coarse point may be used. Optionally, the method comprises including S506 providing or outputting the occupancy  information (fi) .

[0129] Fig. 19 illustrates a block diagram of decoding from a bit stream flags signaling an occupancy of an intermediate point in accordance with an embodiment of the present disclosure. An order difference Δnext is obtained by decoding 304 (see Fig. 11) the flags fi from a bitstream which signal the occupancy of the i-th intermediate points. The decoding is performed as follows: When the decoding of the value of an order difference Δnext starts, the variable ‘i’ is set to 1 at S510. The variable ‘i’ is incremented by one each time a flag fi equal to false is decoded from the bitstream. For each value of ‘i’ , the decoding process obtains S512 the occupancies of the neighbors, belonging to a neighborhood of the i-th intermediate point, and then a neighborhood configuration is determined S514. Then, a hashing function is applied S516 to the neighborhood configuration, with at least the diagonal information Di (optionally the diagonal information Di and the horizontal information Ci) being the input to the hash function, thereby obtaining a hashed configuration . The hashing function may be a modulo function relative to an integer p: HC = C mod p where p is preferably a prime number, C is the neighborhood configuration and HC is the  hashed configuration. By doing so there are p possible hashed configurations. In accordance with other embodiments, any other hash function may be suitable as soon as it is easy to be determined or computed and mixes well the neighborhood configurations and horizontal / diagonal information.

[0130] The flag fi is decoded S518 from the bitstream by an entropy coder by using a probability of the flag to be true (or 1) that depends on the hashed configuration. In one embodiment, the entropy coder is a binary arithmetic coder. In another embodiment, the entropy coder is an adaptive binary coder (like CABAC) that uses a probability associated with a context Ctx to code a bit of information (here the occupancy bit) . In yet another embodiment, the selection of the context Ctx used by the adaptive binary coder is performed at least based on the value of hashed configuration. For example, a table Tctx of context may be used for the selection as follows: Ctx = Tctx [hashed configuration]

[0131] In addition to the neighborhood configuration, horizontal information Ci may be used as input of the hashing function S516 and, if entropy coder context is used, for the determination S520 of the entropy coder context. Regarding the horizontal information Ci, reference is made to Fig. 12 and the associated description above.

[0132] When the decoded flag fi is false S522, the process increments S524 ‘i’ by one and proceeds with decoding the next flag fi+1. Otherwise, when the decoded flag fi is true S522, the decoding process proceeds S526 with outputting the order difference Δnext and decoding of the next order difference Δnext.

[0133] Assuming an order index difference Δnext to equal 4, Δnext is encoded by 3 binary occupancy flags f1, …, f3 having an index i not equal to the value Δnext (i≠ Δnext) and one occupancy flag f4 having the index i=4= Δnext. These binary flags or occupancy flags are decoded from the bitstream according to the process described above with reference to fig. 19.

[0134] In accordance with embodiments, before used together with the neighbor configurations as an input into the hash function S516, and / or before used together with the hashed configurations as an input into the context determination S520, the horizontal information Ci and the diagonal information Di may be combined.

[0135] In accordance with an embodiment, the horizontal information Ci and the diagonal information Di are both used as - independent inputs into the hash function S516, together with neighbor  configurations, and / or - independent inputs into the context determination S520, together with the  hashed configuration.

[0136] In another embodiment, only the diagonal information Di is used as input into the hash function S516, together with neighbor configurations, and / or as an input into the context determination S520, together with the hashed configuration.

[0137] In yet another embodiment, a weighted average of the horizontal information Ci and the diagonal information Di may be used as input into the hash function S516, together with neighbor configurations, and / or as an input into the context determination S520, together with the hashed configuration. The weighted average of the horizontal information Ci and the diagonal information Di may be determined or calculated as follows: I=wc*Ci+wd*Di, withwc+wd=1

[0138] In accordance with embodiments, wc and wd may be both equal to 0.5, and I is input into hash function together with neighbor configurations, and / or is input into the context determination S520, together with the hashed configuration. Encoding Process

[0139] Fig. 20 illustrates a flow diagram of a method for encoding a point cloud, e.g., a Lidar acquired point cloud, in accordance with a further embodiment. The method includes the following: S600: Receiving data, like Lidar acquired data. S602: Encoding a coarse representation of one or more points of the point cloud.  Encoding the coarse representation includes entropy encoding S604 occupancy information (fi) indicating an occupancy of a current coarse point. The occupancy information (fi) is decoded using diagonal information around the current coarse point. In accordance with embodiments, for encoding occupancy information indicating an occupancy of a current coarse point, diagonal information between the current coarse point and an already coded neighbor coarse point may be used. Optionally, the method comprises including S606 into a data stream or bitstream a  magnitude, a sign and a remaining value of the order difference residual.

[0140] Fig. 21 illustrates a block diagram of the encoding of Δnext using the flags fi signaling the occupancy of the i-th intermediate point. An order difference Δnext is encoded 204 (see Fig. 10) by encoding the flags fi into a bitstream which signal the occupancy of the i-th intermediate points. The encoding is performed as follows: When the encoding of the value of an order difference Δnext starts, the variable ‘i’ is set to 1 at S610. The variable ‘i’ is incremented by one each time a flag fi equal to false is encoded into the bitstream. For each value of ‘i’ , the encoding process obtains S612 the occupancies of the neighbors, belonging to a neighborhood of the i-th intermediate point, and then a neighborhood configuration is determined S614. Then, a hashing function is applied S616 to the neighborhood configuration, with at least the diagonal information Di (optionally the diagonal information Di and the horizontal information Ci) being the input to the hash function, thereby obtaining a hashed configuration . The hashing function may be a modulo function relative to an integer p: HC = C mod p where p is preferably a prime number, C is the neighborhood configuration and HC is the  hashed configuration. By doing so there are p possible hashed configurations. In accordance with other embodiments, any other hash function may be suitable as soon as it is easy to be determined or computed and mixes well the neighborhood configurations and horizontal / diagonal information.

[0141] The flag fi is encoded S618 into the bitstream by an entropy coder by using a probability of the flag to be true (or 1) that depends on the hashed configuration. In one embodiment, the entropy coder is a binary arithmetic coder. In another embodiment, the entropy coder is an adaptive binary coder (like CABAC) that uses a probability associated with a context Ctx to code a bit of information (here the occupancy bit) . In yet another embodiment, the selection of the context Ctx used by the adaptive binary coder is performed at least based on the value of hashed configuration. For example, a table Tctx of context may be used for the selection as follows: Ctx = Tctx [hashed configuration]

[0142] In addition to the neighborhood configuration, horizontal information Ci may be used as input of the hashing function S616 and, if entropy coder context is used, for the determination S620 of the entropy coder context. Regarding the horizontal information Ci, reference is made to Fig. 12 and the associated description above.

[0143] When the decoded flag fi is false S622, the process increments S624 ‘i’ by one and proceeds with encoding the next flag fi+1. Otherwise, when the decoded flag fi is true S622, the encoding process proceeds S626 with encoding of the next order difference Δnext.

[0144] Assuming an order index difference Δnext to equal 4, this value is encoded by 3 binary occupancy flags f1, …, f3 having an index i not equals to the value Δnext (i≠ Δnext) and one occupancy flag f4 having the index i=4= Δnext. These binary flags or occupancy flags are encoded into the bitstream according to the process described above with reference to fig. 21.

[0145] In accordance with embodiments, before used together with the neighbor configurations as an input into the hash function S616, and / or before used together with the hashed configurations as an input into the context determination S620, the horizontal information Ci and the diagonal information Di may be combined.

[0146] In accordance with an embodiment, the horizontal information Ci and the diagonal information Di are both used as - independent inputs into the hash function S616, together with neighbor  configurations, and / or - independent inputs into the context determination S620, together with the  hashed configuration.

[0147] In another embodiment, only the diagonal information Di is used as input into the hash function S616, together with neighbor configurations, and / or as an input into the context determination S620, together with the hashed configuration.

[0148] In yet another embodiment, a weighted average of the horizontal information Ci and the diagonal information Di may be used as input into the hash function S616, together with neighbor configurations, and / or as an input into the context determination S620, together with the hashed configuration. The weighted average of the horizontal information Ci and the diagonal information Di may be determined or calculated as follows: I=wc*Ci+wd*Di, withwc+wd=1

[0149] In accordance with embodiments, wc and wd may be both equal to 0.5, and I is input into hash function together with neighbor configurations, and / or is input into the context determination S620, together with the hashed configuration. Further embodiments

[0150] So far, the inventive concept has been described with reference to aspects and embodiments concerning methods of encoding and decoding. In accordance with further embodiments, the present disclosure also provides an apparatus, an encoder and a decoder. Fig. 22 illustrates a block diagram of an apparatus 450 for coding a point cloud. The  apparatus 450 includes: 452: A processing module for coding a coarse representation of one or more points of  the point cloud. For coding the coarse representation, the processing module is configured to entropy code  452a occupancy information (fi) indicating an occupancy of a current coarse point. The occupancy information (fi) is decoded using diagonal information around the current coarse point. In accordance with embodiments, for coding occupancy information indicating an occupancy of a current coarse point, diagonal information between the current coarse point and an already coded neighbor coarse point may be used.

[0151] Fig. 23 illustrates a block diagram of a decoder 500 operating in accordance with embodiments of the present disclosure. The decoder 500 includes: 502: A decoder module configured to decode a point cloud from a data stream, e.g., a  Lidar acquired point cloud. The decoder module 502 may be configured to decode a point cloud according to the  above-described methods of the present disclosure, and / or it may include the apparatus of Fig. 22.

[0152] Fig. 24 illustrates a block diagram of an encoder 600 operating in accordance with embodiments of the present disclosure. The encoder 600 includes: 602: A encoder module configured to encode a point cloud into a data stream, e.g., a  Lidar acquired point cloud. The encoder module 602 may be configured to encode a point cloud according to the  above-described methods of the present disclosure, and / or it may include the apparatus of Fig. 22.

[0153] Fig. 25 illustrates a data stream 700 in accordance with embodiments of the present disclosure, which has encoded thereinto a point cloud, like a Lidar acquired point cloud. In general, the data stream may have encoded thereinto information representing a Lidar acquired point cloud and / or information being associated with encoding / decoding the Lidar acquired point cloud. For example, the data stream or bitstream 700 may be provided by an encoder 600 that performs the inventive method for encoding the data into the data stream 700. The data stream 700 is transmitted to a decoder 500 via a wired or wireless transmission medium 702, like cable or a radio link, and the decoder 500 decodes from the data stream 700 the Lidar acquired point cloud. The data stream includes a signaling 704 of occupancy information (fi) indicating an occupancy of a current coarse point encoded / decoded in accordance with embodiments of the present disclosure.

[0154] Although some aspects of the disclosed concept have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or a device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus.

[0155] Fig. 26 is a block diagram illustrating an electronic device 900 according to embodiments of the present disclosure. The electronic device is intended to represent various forms of digital computers, such as a laptop, a desktop, a workstation, a personal digital assistant, a server, a blade server, a mainframe computer, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as a personal digital processor, a cellular phone, a smart phone, a wearable device, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are described as examples only, and are not intended to limit implementations of the present disclosure described and / or claimed herein. The device 900 includes a computing unit 901 to perform various appropriate actions and processes according to computer program instructions stored in a read only memory (ROM) 902, or loaded from a storage unit 908 into a random access memory (RAM) 903. In the RAM 903, various programs and data for the operation of the storage device 900 can also be stored. The computing unit 901, the ROM 902, and the RAM 903 are connected to each other through a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.

[0156] Components in the device 900 are connected to the I / O interface 905, including: an input unit 906, such as a keyboard, a mouse, an output unit 907, such as various types of displays, speakers, a storage unit 908, such as a disk, an optical disk, and a communication unit 909, such as network cards, modems, wireless communication transceivers, and the like. The communication unit 909 allows the device 900 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks. The computing unit 901 may be formed of various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU) , graphics processing unit (GPU) , various specialized artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processor (DSP) , and any suitable processor, controller, microcontroller, etc. The computing unit 901 performs various methods and processes described above, such as an image processing method. For example, in some embodiments, the image processing method may be implemented as computer software programs that are tangibly embodied on a machine-readable medium, such as the storage unit 908. In some embodiments, part or all of the computer program may be loaded and / or installed on the device 900 via the ROM 902 and / or the communication unit 909. When a computer program is loaded into the RAM 903 and executed by the computing unit 901, one or more steps of the image processing method described above may be performed. In some embodiments, the computing unit 901 may be configured to perform the image processing method in any other suitable manner (e.g., by means of firmware) .

[0157] Various implementations of the systems and techniques described herein above may be implemented in digital electronic circuitry, integrated circuit systems, field programmable gate arrays (FPGA) , application specific integrated circuits (ASIC) , application specific standard products (ASSP) , system-on-chip (SOC) , complex programmable logic device (CPLD) , computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include being implemented in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, and the programmable processor may be a special-purpose or general-purpose programmable processor, and may receive data and instructions from a storage system, at least one input device and at least one output device, and may transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0158] Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general computer, a dedicated computer, or other programmable data processing device, such that the program codes, when executed by the processor or controller, cause the functions and / or operations specified in the flow diagrams and / or block diagrams is performed. The program code can be executed entirely on the machine, partly on the machine, as a stand-alone software package partly on a machine and partly on a remote machine or entirely on a remote machine or server.

[0159] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memories (RAM) , read-only memories (ROM) , erasable programmable read-only memories (EPROM or flash memory) , fiber optics, compact disc read-only memories (CD-ROM) , optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0160] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) ) for displaying information for the user, and a keyboard and pointing device (e.g., a mouse or trackball) through which a user can provide an input to the computer. Other types of devices can also be used to provide interaction with the user, for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback) , and may be in any form (including acoustic input, voice input, or tactile input) to receive the input from the user.

[0161] The systems and techniques described herein may be implemented on a computing system that includes back-end components (e.g., as a data server) , or a computing system that includes middleware components (e.g., an application server) , or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and techniques described herein) , or a computer system including such a backend components, middleware components, front-end components or any combination thereof. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network) . Examples of the communication network includes: Local Area Networks (LAN) , Wide Area Networks (WAN) , the Internet and blockchain networks.

[0162] The computer system may include a client and a server. The Client and server are generally remote from each other and usually interact through a communication network. The relationship of the client and the server is generated by computer programs running on the respective computers and having a client-server relationship with each other. The server may be a cloud server, also known as a cloud computing server or a cloud host, which is a host product in the cloud computing service system, and solves the defects of difficult management and weak business expansion in traditional physical hosts and virtual private servers ( "VPS" for short) . The server may also be a server of a distributed system, or a server combined with a blockchain.

[0163] It is to be understood that the steps may be reordered, added or deleted by using the various forms of flows shown above. For example, the steps described in the present disclosure may be executed in parallel, sequentially, or in different orders, as long as the desired results of the technical solutions in the present disclosure can be achieved, and no limitation is imposed herein.

[0164] The above-mentioned specific embodiments do not limit the scope of protection of the present disclosure. It is to be understood by those skilled in the art that various modifications, combinations, sub-combinations and replacements may be made depending on design requirements and other factors. Any modifications, equivalent replacements, and improvements made within the principles of the present disclosure or invention is to be included within the protection scope of the present disclosure or invention.

Claims

1.A method for coding a point cloud, the method comprising:coding a coarse representation of one or more points of the point cloud,wherein coding the coarse representation includes coding occupancy information (fi) indicating an occupancy of a current coarse point, andwherein the occupancy information (fi) is coded using diagonal information between the current coarse point and an already coded neighbor coarse point.2.A method for encoding a point cloud into a data stream, the method comprising:encoding into the data stream a coarse representation of one or more points of the point cloud,wherein encoding the coarse representation includes encoding occupancy information (fi) indicating an occupancy of a current coarse point, andwherein the occupancy information (fi) is encoded using diagonal information between the current coarse point and an already coded neighbor coarse point.3.A method for decoding a point cloud from a data stream, the method comprising:decoding from the data stream a coarse representation of one or more points of the point cloud,wherein decoding the coarse representation includes decoding occupancy information (fi) indicating an occupancy of a current coarse point, andwherein the occupancy information (fi) is decoded using diagonal information between the current coarse point and an already coded neighbor coarse point.4.The method of any one of the preceding claims, wherein the already coded neighbor coarse point is located in a predefined neighborhood of the current coarse point.5.The method of any one of the preceding claims, wherein the diagonal information comprises information about a distance (Di) between the current coarse point and the already coded neighbor coarse point.6.The method of any one of the preceding claims, wherein the already coded neighbor coarse point is located diagonal above, diagonal below or below the current coarse point.7.The method of any one of the preceding claims, wherein a coarse point is represented using an coarse azimuthal angle and a sensor index, and wherein the coarse azimuthal angle and the sensor index of the already coded neighbor coarse point are different from the coarse azimuthal angle and the sensor index of the current coarse point.8.The method of any one of the preceding claims, wherein the coarse azimuthal angle of the already coded neighbor coarse point is smaller than the coarse azimuthal angle of the current coarse point, and wherein the sensor index of the already coded neighbor coarse point is greater than or less than the sensor index of the current coarse point.9.The method of any one of the preceding claims, wherein the already coded neighbor coarse point is represented by λaland Φal, with λal=λi±k and / or Φal=Φi-m,withλal sensor index of the already coded neighbor coarse point,λi sensor index of the current coarse point,Φal coarse azimuthal angle of the already coded neighbor coarse point,Φi coarse azimuthal angle of the current coarse point,k a positive or negative integer, andm a positive integer greater than zero.10.The method of claim 9, wherein the diagonal information includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with:Di distance between the current coarse point and the already coded neighbor coarse point,coarse azimuthal angle of the already coded neighbor coarse point having a sensor index λi+k.11.The method of claim 10, wherein k is from a range [1, LaserNum-λi] , with LaserNum being a total number of beams of a sensor device.12.The method of claim 9, wherein the diagonal information includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with:Di distance between the current coarse point and the already coded neighbor coarse point,sensor index of the already coded neighbor coarse point having a coarse azimuthal angleΦi-m, andwhereinis larger or smaller than λi.13.The method of claim 9, wherein the diagonal information is determined as follows: withDi distance between the current coarse point and the already coded neighbor coarse point,coarse azimuthal angle of the already coded neighbor coarse point having a sensor index λi+k.14.The method of claim 9, wherein the diagonal information is determined as follows: withDi distance between the current coarse point and the already coded neighbor coarse point,sensor index of the already coded neighbor coarse point having a coarse azimuthal angleΦi-m, andwhereinis larger or smaller than λi.15.The method of claim 9, wherein the already coded neighbor coarse point is a penultimate already coded neighbor coarse point, and wherein λal= λpenult=λi±2 and / or Φal=Φpenult=Φi-2,withλpenult =sensor index of the penultimate already coded neighbor coarse point,Φpenult =coarse azimuthal angle of the penultimate already coded neighbor coarse point.16.The method of claim 15, wherein the diagonal information includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with:Di distance between the current coarse point and the already coded neighbor coarse point,coarse azimuthal angle of the already coded neighbor coarse point having a sensor index λi+k,k a value from [1, LaserNum-λi] , with LaserNum being a total number of beams of a Lidar device.17.The method of claim 15, wherein the diagonal information includes a diagonal distance between the current coarse point and the already coded neighbor coarse point, and wherein the diagonal distance is determined as follows: with:Di distance between the current coarse point and the already coded neighbor coarse point,sensor index of the already coded neighbor coarse point having a coarse azimuthal angleΦi-m, andwhereinis larger or smaller than λi.18.The method of claim 15, wherein the diagonal information is determined as follows: withDi distance between the current coarse point and the already coded neighbor coarse point,coarse azimuthal angle of the already coded neighbor coarse point having a sensor index λi+k.19.The method of claim 15, wherein the diagonal information is determined as follows: withDi distance between the current coarse point and the already coded neighbor coarse point,sensor index of the already coded neighbor coarse point having a coarse azimuthal angleΦi-m, andwhereinis larger or smaller than λi.20.The method of any one of the preceding claims, wherein the occupancy information (fi) is coded using, in addition, an occupancy of neighboring coarse points belonging to a neighborhood of the current coarse point.21.The method of claim 20, wherein the occupancy information (fi) is coded using a hashed configuration,wherein a neighborhood configuration is determined using the occupancy of neighboring coarse points, andwherein an input of a hash function for determining the hashed configuration function comprises the neighborhood configuration and the diagonal information.22.The method of claim 20, wherein the occupancy information (fi) is coded using a context,wherein a neighborhood configuration is determined using the occupancy of neighboring coarse points,wherein a hashed configuration is determined using a hash function receiving as an input the neighborhood configuration and the diagonal information, andwherein the context is determined using the hashed configuration and the diagonal information.23.The method of claim 20, wherein the occupancy information (fi) is coded using also a horizontal information between the neighborhood of the current coarse point and the already coded neighbor coarse point.24.The method of claim 23, wherein the horizontal information comprises information about a distance (Ci) between the current coarse point and an already coded neighbor coarse point, wherein the coarse azimuthal angle of the already coded neighbor coarse point is smaller than the coarse azimuthal angle of the current coarse point, and wherein the sensor indices of the already coded neighbor coarse point and the current coarse point are the same.25.The method of claim 23 or 24, wherein the occupancy information (fi) is coded using a hashed configuration,wherein a neighborhood configuration is determined using the occupancy of neighboring coarse points, andwherein an input of a hash function for determining the hashed configuration function comprises:- the neighborhood configuration and the diagonal information and the horizontal information, or- the neighborhood configuration and a weighted average of the diagonal information and the horizontal information.26.The method of claim 23 or 24, wherein the occupancy information (fi) is coded using a context,wherein a neighborhood configuration is determined using the occupancy of neighboring coarse points, wherein a hashed configuration is determined using a hash function receiving as an input:- the neighborhood configuration and the diagonal information and the horizontal information, or- the neighborhood configuration and a weighted average of the diagonal information and the horizontal information, andwherein the context is determined using:- the hashed configuration and the diagonal information and the horizontal information.- the hashed configuration and a weighted average of the diagonal information and the horizontal information.27.The method of any one of the preceding claims, wherein the occupancy information (fi) is entropy coded.28.The method of claim 27, wherein entropy coding the occupancy information (fi) uses Context-based Adaptive Binary Arithmetic Coding (CABAC) .29.A non-transitory computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of any one of the preceding claims.30.An apparatus for coding a point cloud, the apparatus comprising:a processing module for coding a coarse representation of one or more points of the point cloud,wherein, for coding the coarse representation, the processing module is configured to code occupancy information (fi) indicating an occupancy of a current coarse point using diagonal information between the current coarse point and an already coded neighbor coarse point.31.An encoder, the encoder comprising: an apparatus according to claim 30.32.An encoder, the encoder comprising: an encoder module, wherein the encoder module is configured to encode a point cloud according to the method of any one of claims 1 to 28.33.A decoder, the decoder comprising: an apparatus according to claim 30.34.A decoder, the decoder comprising: an decoder module, wherein the decoder module is configured to decode a point cloud according to the method of any one of claims 1 to 28.