Method and apparatus for encoding / decoding point cloud geometry data sensed by at least one sensor - Patents.com
Patent Information
- Application Number
- JP2024517573
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-09-24
- Filing Date
- 2022-06-21
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2042-06-21
AI Technical Summary
Existing point cloud codecs fail to satisfactorily combine simplicity of encoding and decoding, low latency, and high compression performance, particularly for sparse geometry data sensed by sensors on moving vehicles, which is crucial for applications like autonomous driving.
A method and apparatus for encoding and decoding point cloud geometry data using a coarse representation in two-dimensional space, where ordered coarse points are entropy encoded and decoded based on their ordinal index differences and sensing numbers, adapting the encoding structure to the sensing order of sensors.
This approach enhances encoding efficiency by optimizing compression performance while maintaining low latency and simplicity, making it suitable for real-time data transmission and processing in applications such as autonomous driving.
Smart Images

Figure 00000030_0000 
Figure 00000031_0000 
Figure 00000031_0001
Abstract
Description
[Technical field]
[0001] Cross-references to related applications This application claims priority to and the benefit of European Patent Application No. 21306322.5, filed September 24, 2021, the entire contents of which are incorporated herein by reference for all purposes.
[0002] The present application relates generally to point cloud compression, and more particularly to a method and apparatus for encoding / decoding point cloud geometry data sensed by at least one sensor. [Background technology]
[0003] This section is intended to introduce the reader to various aspects of the art, which may be related to various aspects of at least one embodiment of the present application that are described and / or claimed below. This discussion is believed to be helpful in providing the reader with background information to better understand all aspects of the present application.
[0004] Point clouds have recently gained attention as a format to represent 3D data. It varies in its ability to represent all types of physical objects or scenarios. Point clouds can be used for various purposes, such as cultural heritage / architecture, to scan objects like sculptures or buildings in a 3D way in order to share the spatial configuration of the object without transmitting or accessing it. It is also a way to ensure the preservation of knowledge of an object in case it may be destroyed. For example, a temple destroyed in an earthquake. Usually, this type of point cloud is static, colored and huge.
[0005] Another use case is in topography and cartography, where a 3D representation is used to allow maps to be not limited to flat surfaces but to include relief. Google Maps is currently a good example of a 3D map, but it uses a mesh rather than a point cloud. However, a point cloud may be an appropriate data format for a 3D map, and usually this type of point cloud is static, colored, and large.
[0006] Virtual reality (VR), augmented reality (AR), and immersive worlds have been a hot topic lately and are seen by many as the future of 2D tablet video. The basic idea is to immerse the viewer in the surrounding environment, but standard TV only allows the viewer to see the virtual world in front of him / her. There are several levels of immersion depending on the viewer's freedom in the environment. Point clouds are a good format candidate to distribute VR / AR worlds.
[0007] The automotive industry, especially the foreseeable field of autonomous vehicles, is also an area where point clouds can be used extensively. Autonomous vehicles should be able to "sense" their environment in order to make better driving decisions based on the presence and nature of detected objects in their nearest vicinity, and on the road layout.
[0008] A point cloud is a collection of points located in three-dimensional (3D) space, optionally with additional values attached to each point. These additional values are typically called attributes. An attribute may be, for example, a three-component color, a material property (e.g., reflectance), and / or a two-component normal vector to a surface associated with the point.
[0009] A point cloud is therefore a combination of geometry data (point positions in 3D space, usually expressed as 3D Cartesian coordinates x, y, z) and attributes.
[0010] Point clouds can be sensed by various types of devices, such as an array of cameras, depth sensors, lasers (also called light detection and ranging, laser lidar), radar, or can be computer-generated (e.g., for movie post-production). Depending on the use case, for cartography, a point cloud may contain thousands to billions of points. The original representation of the point cloud requires a very large number of bits per point, at least a dozen bits per Cartesian coordinate x, y, or z, and optionally provides more bits for one or more attributes, e.g., three times the 10 bits for color.
[0011] In many applications it is important to be able to distribute point clouds to end users or store them on a server while maintaining an acceptable (or preferably very good) quality of experience, consuming only a reasonable number of bitrates or storage space. Efficient compression of these point clouds is a key point for the practical realization of many immersive world distribution chains.
[0012] For distribution and visualization by end users, e.g., in AR / VR glasses or any other 3D-enabled device, the compression may be lossy (e.g., in the case of video compression), but there are also use cases that require lossless compression in order not to alter decisions obtained from subsequent analysis of the compressed and transmitted point cloud, such as medical applications or autonomous driving.
[0013] Until recently, the mass market had no solution to the problem of point cloud compression (aka PCC), and there were no standardized point cloud decoders available. In 2017, the standardization working group ISO / J CT1 / SC29 / WG11, also known as the Video Imagery Experts Group or MPEG, initiated a working project on point cloud compression, which has resulted in two standards: MPEG-I Part 5 (ISO / IEC 23090-5) or Video-Based Point Cloud Compression (aka V-PCC) MPEG-I Part 9 (ISO / IEC 23090-9) or Geometry-Based Point Cloud Compression (aka G-PCC)
[0014] The V-PCC coding method compresses point clouds by multiple projections onto a 3D object to obtain 2D patches that are packaged into an image (or video in the case of processing dynamic point clouds). It compresses images and videos captured with existing image / video codecs, making the most of image and video solutions already in place. By its very nature, V-PCC is only efficient with dense and continuous point clouds, since image / video codecs cannot compress non-smooth patches, such as those obtained from projections of sparse geometry data sensed by laser lidar.
[0015] The G-PCC coding method has two schemes for compressing sparse sensed geometry data.
[0016] The first approach is based on an occupancy tree, which is any type of tree, locally octet, quad or binary, representing the point cloud geometry. Occupied nodes (i.e. nodes related to cubes / cuboids that contain at least one point of the point cloud) are split until a certain size is reached, and the 3D location of the points is provided by occupied leaf nodes, usually located at the center of these nodes. The occupancy information is carried by occupancy data (binary data, flags), which send signals to communicate the occupancy state of each of the node's subnodes. By using neighborhood-based prediction techniques, a high level of compression can be obtained for data occupied by dense point clouds. Sparse point clouds can also be solved by directly encoding the location of non-minimal sized points in the node, stopping the tree construction when only isolated points exist in the node. Such techniques are called direct coding mode (DCM).
[0017] The second approach is based on a prediction tree, where each node represents the 3D location of a point, and the parent / child relationships between nodes represent the spatial prediction from parent to child. This approach only solves sparse point clouds, and offers the advantages of lower latency and easier decoding than occupancy trees. However, it offers only a small improvement in compression performance over the first occupancy-based approach, and increases the coding complexity as the encoder needs to intensively search for the best predictor (from a long list of potential predictors) when building the prediction tree.
[0018] In these two schemes, attribute (decoding) encoding is done after geometry (decoding) encoding is completed, so effectively two encodings occur. Thus, joint geometry / attribute low latency is achieved by decomposing the 3D space into slices of sub-volumes that are coded independently, without prediction between the sub-volumes. Using many slices severely impacts compression performance.
[0019] The combination of requirements for encoder and decoder simplicity, low latency and compression performance is a problem that has yet to be satisfactorily solved by existing point cloud codecs.
[0020] An important use case is the transmission of sparse geometry data sensed by at least one sensor mounted on a moving vehicle. In this case, a simple and low-latency embedded encoder is usually required. The requirement for simplicity limits the processing power available to the point cloud encoder, since the encoder may be located in a computing unit that performs other processing in parallel (e.g., (semi-)automated driving). Also, low latency is required to check the local traffic in real time based on the collection of multiple vehicles and to make rapid enough decisions based on the traffic information to enable fast transmission from the car to the cloud. The use of 5G allows the transmission latency to be low enough, but the encoder itself should not introduce too much latency for encoding. And since the flow of data from millions of cars to the cloud is expected to be huge, compression performance is crucial.
[0021] Specific priors related to sparse geometry data sensed by spin laser radar have already been exploited in G-PCC, leading to very significant compression gains.
[0022] First, G-PCC utilizes the elevation angle (relative to the horizontal ground) sensed by a spinning laser radar head 10, as shown in Figures 1 and 2. The laser radar head 10 includes a collection of sensors 11 (e.g., laser devices), five of which are shown here. The spinning laser radar head 10 can rotate around a vertical axis z to sense the geometry data of a physical object. The geometry data sensed by the laser radar is then expressed in spherical coordinates (r 3D ,φ,θ) and r 3D is the distance from point P to the center of the laser radar head, φ is the azimuth angle of the self-rotation of the laser radar head relative to the reference object, and θ is the elevation angle of the sensor k of the laser radar head 10 relative to the horizontal reference plane.
[0023] As shown in Figure 3, a regular distribution along the azimuth angle is observed in the laser radar sensed data. This regularity is used in G-PCC to obtain a quasi-1D representation of the point cloud, and the noise is reduced to a radius of r 3D Only the angle φ and θ can take on only discrete values, and the angles φ and θ can take on only discrete values. i ∀i=0~I-1, where I is the number of azimuth angles for sensing the point, and θj∀i=0~J-1, where J is the number of sensors in the spinning laser radar head 10. Essentially, as shown in Figure 3, G-PCC uses sparse geometry data sensed by the laser radar in a two-dimensional (discrete) angular coordinate space (φ, θ) and the radius value r of each point. 3D Represents.
[0024] In spherical coordinate space, the discrete property of angles is used to predict the position of the current point based on already coded points; such quasi-1D property is already exploited in G-PCC in both occupancy and prediction trees.
[0025] More precisely, occupancy trees make extensive use of DCM and use a context self-adaptive entropy encoder to entropy code the direct positions of points in nodes, as well as the local transformation from point positions to angular coordinates (φ,θ), and the discrete angular coordinates (φ i ,θ j ) to get the context. The quasi-1D nature of this coordinate space (r 2D ,φ i ,θ j ), the prediction tree uses the angle coordinate (r 2D ,φ,θ) and directly encode the first version of the point's location in r 2D is the projection radius on the horizontal xy plane. Next, the spherical coordinates (r 2D ,φ,θ) to 3D Cartesian coordinates (x, y, z) and encode the xyz residuals to address errors in the coordinate transformation, approximations in elevation and azimuth angles, and potential noise.
[0026] G-PCC certainly uses an angular prior to better compress the sparse geometry data sensed by the spinning laser radar, but does not adapt the coding structure to the sensing order. In essence, the occupancy tree needs to be coded to its final depth before outputting the points. This occupancy data is coded according to a so-called breadth priority: first the occupancy data of the root node is coded to indicate which subnodes it is occupied, then the occupancy data of each occupied subnode is coded to indicate which grandchild nodes it is occupied on, and so on, until the leaf nodes are determined and the corresponding points are provided / output to the application or to the attribute coding scheme(s). For prediction trees, the encoder is free to choose the order of the points in the tree, but to obtain good compression performance and optimize the prediction accuracy, G-PCC recommends coding one tree per sensor. This mainly has the same disadvantages as using one coding slice for each sensor, i.e. non-optimal compression performance, since no prediction between sensors is possible and low encoder latency is not provided. To make matters worse, each sensor should have one encoding process, which is unrealistic since the number of core encoding units needs to be equal to the number of sensors.
[0027] In other words, in the framework of a spinning sensor head for sensing sparse geometric data of a point cloud, the prior art does not solve the problem of combining simplicity of encoding and decoding, low latency, and compression performance.
[0028] Also, using spinning sensor heads to sense the sparse geometric data of a point cloud has some drawbacks, and other types of sensor heads can be used.
[0029] The mechanical parts that generate the spin of the spin sensor head are prone to breakage and are expensive. Also, due to its structure, the viewing angle is necessarily 2π. This does not allow sensing of certain areas of interest at high frequencies, for example, sensing the front of the vehicle may be more interesting than sensing the rear. In fact, in most cases, when the sensor is mounted on a vehicle, most of the 2π viewing angle is blocked by the vehicle itself, and the blocked viewing angle does not need to be sensed.
[0030] Recently, new sensors have emerged that allow more flexibility in selecting the area to be sensed. In most recent designs, the sensor can be moved more freely electronically (to avoid fragile mechanical parts) to obtain various sensing paths in the 3D scene, as shown in Figure 5. In Figure 5, a group of four sensors is shown. Although their relative sensing directions (i.e., azimuth and elevation angles) are fixed relative to each other, they generally sense the scene along a programmable sensing path depicted by a dashed line in the two-dimensional angular coordinate (φ, θ) space. Then, points of the point cloud can be sensed regularly along the sensing path. As shown in Figure 6, some sensor heads can also adjust their sensing frequency by increasing their sensing frequency when a region of interest R is detected. Such a region of interest R can be associated, for example, with a close-range object, a moving object, or any object (pedestrian, other vehicle, etc.) that has been previously segmented in the previous frame or dynamically segmented in the sensing period. FIG. 7 shows a schematic of another example of a sensing path (a typical zigzag sensing path) used by a sensor head including two sensors that can increase their sensing frequency if an area of interest (gray shaded points and gray hash points) is detected. Using a zigzag sensing path can be advantageously used to sense a finite (azimuth) angular sector of a 3D scene. Since the sensor can be mounted on a vehicle, the viewport of interest is necessarily limited by the presence of the vehicle itself, which occludes the scene, unless the sensor is located on top of the vehicle. Therefore, a sensor with a limited sensing angular sector is highly visible and easier to integrate into the vehicle.
[0031] As shown in FIG. 8, a sensor head including a single sensor may be used to sense multiple positions (two vertical positions in FIG. 8), such as using reflections off a mirror that oscillates with rotation (here vertical rotation). In this case, instead of using a group of sensors, sensing using a group of sensors is simulated using a single sensor at different angular positions (i.e., having different elevation angles in FIG. 8) along a sensing path (here a zigzag sensing path). For simplicity, in the following description and claims, a "sensor head" may refer to a group of physical sensors or a set of sensing elevation indexes that simulate a group of sensors. Those skilled in the art will also appreciate that a "sensor" may also refer to a sensor at each sensing elevation index position.
[0032] Combining the requirements of encoder and decoder simplicity, low latency, and compression performance for point clouds sensed by any type of sensor is a problem that has not yet been satisfactorily solved by existing point cloud codecs.
[0033] At least one embodiment of the present application is designed with the above in mind. Summary of the Invention [Problem to be solved by the invention]
[0034] The following section presents a simplified summary of at least one embodiment in order to provide a basic understanding of some aspects of the present application. This summary is not a detailed overview of the embodiment. It is not intended to identify key or critical elements of the embodiment. The following summary presents only some aspects of at least one embodiment in a simplified form as a prelude to the more detailed description provided elsewhere in the document. [Means for solving the problem]
[0035] According to a first aspect of the present application, there is provided a method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space into a bit stream, the method comprising: obtaining a coordinate in the two-dimensional space of a current coarse point; obtaining a sensing number based on the current coarse point, the sensing number representing an average number of consecutive sensings required for a sensor associated with the current coarse point to sense another coarse point; and entropy coding binary data into a bit stream based on the sensing number, thereby obtaining at least one binary data representing an order index difference, and encoding each of the at least one binary data, the order index difference representing a difference between order indexes of two consecutively occupied coarse points.
[0036] According to a second aspect of the present application, there is provided a method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bit stream, the method comprising: obtaining a coordinate in the two-dimensional space of a current coarse point; obtaining a sensing number based on the current coarse point, the sensing number representing an average number of consecutive sensings required for a sensor associated with the current coarse point to sense another coarse point; and entropy decoding binary data based on the sensing number into the bit stream to obtain at least one binary data representing an order index difference, the order index difference representing a difference between order indexes of two consecutively occupied coarse points.
[0037] In some embodiments, if the sensing number is greater than the active threshold, the binary data is entropy encoded or entropy decoded based on the sensing number, and otherwise the binary data is entropy encoded or entropy decoded based on a coordinate difference between at least one first coordinate associated with the current coarse point and one first coordinate of a previously encoded or decoded coarse point having the same sensor index as the sensor index associated with the current coarse point.
[0038] In some embodiments, entropy encoding or entropy decoding the binary data is performed based on a value that depends on a sample index and another sample index and sensing number associated with a sensing time, at which the point of the point cloud represented by the last occupied coarse point has already been sensed by the sensor associated with the sensor index.
[0039] In some embodiments, the value is defined by two thresholds.
[0040] In some embodiments, the sensing number depends on the radius and / or azimuth associated with the last occupied coarse point representing a point of the point cloud sensed by the sensor associated with the current coarse point.
[0041] In some embodiments, the number of sensings depends on the point cloud feature distance, which is defined as the average distance between points in the point cloud, and the arc length in a two-dimensional Cartesian coordinate plane, which is defined between two consecutive sensings of the sensor associated with the current coarse point.
[0042] In some embodiments, the arc length is based on a radius associated with a last occupied coarse point representing a point of the point cloud sensed by the sensor associated with the current coarse point and an azimuth shift between two successive sensings.
[0043] In some embodiments, the point cloud feature distances are encoded into the bitstream.
[0044] According to a third aspect of the present application, there is provided an apparatus for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the apparatus comprising one or more processors configured to perform a method according to the first aspect of the present application.
[0045] According to a fourth aspect of the present application, there is provided an apparatus for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the apparatus comprising one or more processors configured to perform a method according to the second aspect of the present application.
[0046] According to a fifth aspect of the present application, there is provided a computer program product comprising instructions, which when executed by one or more processors, cause the one or more processors to perform the method of the first aspect of the present application.
[0047] According to a sixth aspect of the present application, there is provided a non-transitory storage medium comprising program code instructions for performing the method of the first aspect of the present application.
[0048] According to a seventh aspect of the present application, there is provided a computer program product comprising instructions, which when executed by one or more processors, cause the one or more processors to perform the method of the second aspect of the present application.
[0049] According to an eighth aspect of the present application, there is provided a non-transitory storage medium comprising program code instructions for performing the method of the second aspect of the present application.
[0050] The specific nature of at least one of the embodiments, as well as other objects, advantages, features, and applications of at least one of the embodiments, will become apparent from the following description of the examples taken in conjunction with the drawings. [Brief description of the drawings]
[0051] Reference is now made, by way of example only, to the drawings which illustrate embodiments of the present application. [Figure 1] FIG. 1 shows a schematic side view of a sensor head according to the prior art and some of its parameters. [Diagram 2] FIG. 1 shows a schematic plan view of a sensor head according to the prior art and some of its parameters; [Diagram 3] 1 is a schematic diagram showing a regular distribution of data sensed by a spin sensor head according to the prior art; [Figure 4] FIG. 1 is a schematic diagram illustrating a representation of points of a point cloud in 3D space according to the prior art; [Diagram 5] FIG. 1 shows a schematic diagram of an example of a sensor head capable of sensing a real scene along a programmable sensing path according to the prior art; [Figure 6] FIG. 1 is a schematic diagram illustrating an example of a sensor head capable of sensing a real scene along a programmable sensing path based on different sensing frequencies according to the prior art; [Figure 7] FIG. 1 is a schematic diagram illustrating an example of a sensor head capable of sensing a real scene along a programmable zigzag sensing path based on different sensing frequencies according to the prior art; [Figure 8] FIG. 13 is a schematic diagram illustrating a single sensor head capable of sensing a real scene along a programmable zigzag sensing path based on different sensing frequencies. [Figure 9] FIG. 2 is a schematic diagram illustrating an example of ordered coarse points of a coarse representation in accordance with at least one embodiment. [Figure 10] FIG. 10 is a schematic diagram illustrating an example of ordered coarse points of a coarse representation sensed by a dual sensor head in accordance with at least one embodiment; [Figure 11] FIG. 1 shows a schematic representation of ordered coarse points in a two-dimensional coordinate (s, λ) space. [Figure 12]FIG. 2 is a schematic diagram illustrating ordered coarse points of a coarse representation in accordance with at least one embodiment; [Figure 13] FIG. 1 is a schematic block diagram illustrating steps of a method 100 for encoding point cloud geometry data into a bitstream of encoded point cloud data according to at least one embodiment. [Figure 14] FIG. 2 is a schematic diagram illustrating an example of a coarse representation having occupied and unoccupied coarse points according to one embodiment; [Figure 15] FIG. 2 is a schematic diagram illustrating an example of a coarse representation having occupied and unoccupied coarse points according to one embodiment; [Figure 16] FIG. 10 is a schematic diagram illustrating a representation of feature point cloud distance and distance between two consecutive sensings by the same sensor according to one embodiment. [Figure 17] FIG. 13 is a diagram illustrating an example of coordinate differences Cj calculated based on an example of a neighborhood occupancy setting. [Figure 18] FIG. 13 is a diagram illustrating an example of coordinate differences Cj calculated based on an example of a neighborhood occupancy setting. [Figure 19] FIG. 13 is a diagram illustrating an example of coordinate differences Cj calculated based on an example of a neighborhood occupancy setting. [Figure 20] FIG. 13 is a diagram illustrating an example of coordinate differences Cj calculated based on an example of a neighborhood occupancy setting. [Figure 21] FIG. 13 illustrates an example of the difference between two sample indexes associated with two different sensing times, where two rough points were already sensed by the same sensor at two different sensing times, according to one embodiment. [Figure 22] FIG. 13 is a diagram illustrating a schematic correction of the number of sensing elements according to an embodiment. [Figure 23] FIG. 2 is a schematic block diagram illustrating steps of a method 200 for decoding point cloud geometry data from a bitstream of encoded point cloud data in accordance with at least one embodiment. [Figure 24] FIG. 2 is a schematic block diagram illustrating steps of a context self-adaptive binary arithmetic encoder in accordance with at least one embodiment. [Diagram 25] 1 is a schematic block diagram illustrating an example of a system in which various aspects and embodiments may be implemented.Like reference numerals may be used in different figures to represent like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0052] At least one example of the embodiment will be described below with reference to the drawings, and at least one of the embodiments will be illustrated. However, the embodiment can be implemented in many alternative forms and should not be construed as being limited to the examples described herein. Therefore, it should be understood that the embodiment is not intended to be limited to the specific form disclosed. On the contrary, the application is intended to cover all modifications, equivalents and alternatives falling within the spirit and scope of the application.
[0053] On the one hand, it generally relates to point cloud encoding and decoding, on the other hand, it generally relates to the transmission of generated or encoded bitstreams, and on the other hand, it generally relates to the reception / access of decoded bitstreams.
[0054] Additionally, the aspects are not limited to MPEG standards such as MPEG-I Part 5 or Part 9 relating to point cloud compression, etc., but may be applied, for example, to other standards and recommendations, whether existing or developed in the future, and extensions of such standards and recommendations, including MPEG-I Part 5 and Part 9. Unless otherwise indicated or technically excluded, the aspects described in this application may be used alone or in combination.
[0055] The present invention relates to encoding / decoding point cloud geometry data represented by ordered coarse points of a coarse representation occupying several discrete locations of a set of discrete locations in a two-dimensional space.
[0056] For example, in the working group ISO / IEC JTC1 / SC29 / WG7 related to MPEG 3D graphics coding, a new codec called L3C2 (Low Delay Low Complexity Codec) is considered to improve the coding efficiency of laser radar sensed point clouds with respect to the G-PCC codec. The codec L3C2 provides an example of a two-dimensional representation (i.e. a coarse representation) of the points of the point cloud. A description of this code is given in the Working Group's output document N 00167, ISO / IEC JTC1 / SC 29 / WG7, MPEG 3D graphics coding, "Technologies under Consideration in G-PCC", dated 31 August 2021.
[0057] Basically, each sensing point P n For sensing point P n The 3D Cartesian coordinates (x n ,y n ,z n ) to obtain the sensing point P n The sensor index λ associated with the sensor n and the azimuth angle φ, which represents the sensing angle of this sensor. n Then, obtain the azimuth angle φ n and the sensor index λ n Sort the points of the point cloud based on, for example, lexicographical order based on azimuth angle first and then based on sensor index. Then, for point P n The order index o(P n ) is obtained using the following formula: o(P n )=φ n * K+λ n where K is the number of sensors.
[0058] FIG. 9 is a schematic diagram of ordered coarse points in a coarse representation. Five points of the point cloud have already been sensed. Each of these five points is coarsely represented by a coarse point (black point) in the coarse representation: two coarse points Pn and P n+1 is the angle φ at time t1 c (φ i ′ s The three coarse points are aligned at an angle φ c +Δφ represent three points of the sensed point cloud. The coarse points that represent points of the sensed point cloud are occupied points, and the coarse points that do not represent points of the sensed point cloud are unoccupied points. Since the points of the point cloud are represented by occupied coarse points in the coarse representation, the order indices associated with the points of the point cloud are also order indices associated with occupied coarse points.
[0059] We can then define a coarse representation of the point cloud geometry data in the 2D coordinate (φ,λ) space.
[0060] Coarse representations can also be defined for any type of sensor head, including rotating (spinning) or non-rotating sensor heads. The definition is based on a sensing path defined by sensor characteristics in a two-dimensional angular coordinate (φ,θ) space, which includes an azimuth angle coordinate φ and an elevation angle coordinate θ, where the azimuth angle represents the sensing angle of the sensor relative to a reference object, and the elevation angle coordinate θ represents the elevation angle of the sensor relative to a horizontal reference plane. The sensing path is used to sense the points of the point cloud based on ordered coarse points that represent potential locations of the sensed points of the point cloud. Each coarse point is defined based on one sample index s associated with a sensing time along the sensing path and one sensor index λ associated with a sensor.
[0061] In Fig. 10, we use a sensor head that includes two sensors. The sensing paths along which the two sensors are located are represented by dashed lines. For each sample index s (each sensing time), we define two coarse points. The coarse points associated with the first sensor are represented by black shaded points in Fig. 10, and the coarse points associated with the second sensor are represented by black hashed points. Each of the two coarse points belongs to a sensor sensing path (dashed line) defined by sensing path SP. Fig. 11 shows a schematic representation of ordered coarse points in a two-dimensional coordinate (s, λ) space. The arrows in Fig. 10 and Fig. 11 indicate the links between two consecutive ordered coarse points.
[0062] Based on this sorting of the coarse points in the ordered coarse points, we associate an order index o(P) with each coarse point. o(P)=λ+s * K
[0063] where K is the number of sensors in the sensor set or the number of different positions of a single sensor for the same sample index, and λ is the sensor index of the sensor that sensed point P in the point cloud at sensing time s.
[0064] Figure 12 shows the ordered coarse points of the coarse representation, showing five occupied coarse points (black circles). Two coarse points P n and P n+1 is occupied by two points of the point cloud sensed at sensing time t1 (corresponding to sample index s1), and the three coarse points are occupied by three points of the point cloud sensed at sensing time t2 (corresponding to sample index s2).
[0065] We can then define a coarse representation of the point cloud geometry data in the 2D coordinate (s,λ) space.
[0066] Apart from the two-dimensional space in which the coarse representation of the point cloud geometry data is defined, encoding the point cloud geometry data includes encoding the occupancy data of the occupied coarse points of the coarse representation by encoding order index differences Δo, where each order index difference Δo is the order index difference between two consecutively occupied coarse points P -1 represents the difference between the order indexes of and P. Δo=o(P)-o(P -1 )
[0067] In Fig. 9, the first occupied rough point P in the two-dimensional coordinate (φ, λ) space n Assuming that the coordinates of are known in advance, the first order index difference Δo n+1 to obtain the occupied rough point P n+1 The ordering index o(P n+1 ) and the occupied rough points P n The ordering index o(P n ) The second order index difference Δo n+2 to find another occupied rough point P n+2 The ordering index o(P n+2 ) and P n+1 The order index o(P n+1 ) and so on.
[0068] In Figure 12, the first occupied rough point P in the two-dimensional coordinate (s, λ) space n Assuming that the coordinates of are known in advance, the first order index difference Δo n+1 to obtain the occupied rough point P n+1 The order index o(P n+1 ) and the occupied rough points P n The order index o(P n ) in the example. In the example, the rough points (white circles) are unoccupied, so Δo n+1 = 2. The second order index difference Δo n+2 to find another occupied rough point P n+2 The order index o(P n+2 ) and the occupied rough points Pn+1 The order index o(P n+1 ) and so on.
[0069] The order index o(P1) of the first coarse point occupied by the first sensed point P1 of the point cloud can be directly coded into the bitstream B. This corresponds to setting the order index of the virtual zeroth point to zero, i.e., o(P0)=0, and coding Δo(1)=o(P1)-o(P0)=o(P1).
[0070] Given the order index o(P1) of the first coarse point occupied by the first sensed point P1 of the point cloud and the order difference Δo, we can recursively reconstruct the order index o(P) of any occupied coarse point occupied by the sensed point P of the point cloud by the following equation: o(P)=o(P -1 )+Δo
[0071] In the following, the present invention will be described taking into consideration a coarse representation defined in two-dimensional coordinate (s, λ) space. However, since a spin sensor head (such as a laser radar head) is a specific coarse representation defined in two-dimensional coordinate (s, λ) space, a coarse representation defined in two-dimensional coordinate (φ, λ) space can also be described, and at each sensing time, the sensor of the sensor head senses an object, and the sensed point corresponds to the represented occupied coarse point.
[0072] In brief, the encoding method includes obtaining at least one binary data representing an order index difference Δo representing the difference between the order indexes of two consecutive coarse points, and encoding the at least one binary data f j , where the order index difference is a particular value V j If it is equal to one binary data f j can be notified by sending a signal, so the binary data f j is the current rough point P jIn order to notify the occupancy of each of the nodes, the signals are transmitted in sequence. o(P j )=o(P -1 )+V j Here, P -1 is the occupied coarse point of two consecutive occupied coarse points.
[0073] First, the current rough point P j The sensing number is obtained based on the current coarse point P j represents the average number of consecutive sensings required for the sensor associated with f to sense another rough point. Then, based on the number of sensings, the binary data f j Entropy encode / decode the following.
[0074] The entropy coding / decoding of the binary data representing the difference in order indexes can be based on geometry information that depends on the geometric shape of the coarse representation, such as the sensor index or the index value of the current coarse point between two occupied coarse points. Such geometry information is not based on the sensing characteristics of the sensor, and therefore may miss relevant information that is important for predicting the occupancy of the coarse points of the coarse representation.
[0075] The sensing number for entropy encoding / decoding represents the average number of consecutive sensings required for a sensor associated with a current coarse point to sense another coarse point, and thus provides information related to sensing characteristics, as will be described in more detail below.
[0076] Entropy encoding / decoding the binary data can include selecting a context based on the sensing number. Selecting a context based on the sensing number provides better prediction, and thus better entropy encoding / decoding of the binary data to be encoded.
[0077] FIG. 13 is a schematic block diagram illustrating steps of a method 100 for encoding point cloud geometry data into a bitstream of encoded point cloud data according to at least one embodiment.
[0078] In step 105, at least one binary data f representing the order index difference Δo is generated. j The order index difference Δo represents the difference between the order indexes of two consecutively occupied coarse points in the coarse representation.
[0079] In one embodiment of step 105, the at least one binary data f j is obtained by one-dimensionally encoding the order index difference Δo.
[0080] For example, a one-dimensional representation with an order index difference Δo equal to 8 may include nine binary data f0 to f7, and in addition to the last one f8 being equal to PV, all of the binary data f0 to f7 are not equal to the value PV (usually PV=1).
[0081] In step 110, the at least one binary data f j Consider one of the following.
[0082] In step 120, the current coarse point P j Get the coordinates in the two-dimensional space of the current rough point P j is the first coordinate φ in the two-dimensional coordinate (φ, λ) space. j and the second coordinate λ j and the first coordinate s in the two-dimensional coordinate (s, λ) space j and the second coordinate λ j has.
[0083] In Fig. 14, unoccupied coarse points are demarcated by dashed lines, and grey points represent occupied coarse points. In the example shown, the order index difference Δo is equal to 4 and is one-dimensionally coded by three binary data f0,...,f2 not equal to the value PV and one binary data f3 equal to the value PV. j(Shaded point) is the occupied rough point P and the next occupied rough point P +1 The index j is the current coarse point P j is the j-th unoccupied coarse point after the occupied coarse point P. In FIG. 14, the current coarse point P j is the second (j=2) coarse point from the occupied point P, and in Fig. 15, the current coarse point P j is the third (j=3) coarse point from the occupied point P. The causal neighborhood N is the area around the current coarse point P. j is defined around all binary data f j When encoding f, the causal neighborhood N can vary depending on the index j. As shown in Figs. 14 and 15, different neighborhood occupancy settings can be used to encode each of the binary data f j In this illustrative, non-limiting example, when j=4, the current coarse point P j is the next occupied rough point P +1 λ j
[0084] In step 130, the current coarse point P j Based on the number of sensing sens (s j ,λ j ) is acquired. The number of sensing (N sens (s j ,λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another coarse point.
[0085] In other words, if the coarse representation uses a two-dimensional (s, λ) coordinate space, the number of sensing elements N sens (s j ,λ j ) is the feature distance L that is approximately equal to the point cloud in the coarse representation. PC The samples s~s+N that need to cover the distance between two coarse points separated by a distance sens (s j ,λ j )
[0086] s last Let be the sample index associated with a sensing time, and at this sensing time, the last occupied point P last The sensor index λ of the point cloud represented by j (Sensor λ j The sensing is done by a system called N sens (s j ,λ j ) ≦ 1, the same sensor λ j The next coarse point sensed by the next sample index s last +1. Otherwise, N sens (s j ,λ j )>1, then the sensor λ j The next coarse point sensed by last +N sens (s j ,λ j ) is expected to be around
[0087] Therefore, the current rough point P j Sample index s j s last +N sens (s j ,λ j ) the closer the current rough point P j is more likely to be occupied.
[0088] Number of sensing N sens (s j ,λ j ) is the sensor λ j It represents how many "virtual sensing" steps are required to see the next coarse point for N sens (s j , λ j )=5, then statistically we can expect to have approximately 1 occupied coarse point for every 5 coarse points for a sensor λj.
[0089] Characteristic distance L PC is defined as follows: When encoding using the original point cloud data sensed by a sensor, it is expected that all coarse points of the coarse representation are sensed. If the sensor detects an object (usually by measuring the reflection of a laser beam on the object), the coarse point is occupied, otherwise it is unoccupied. In this case, the occupancy data of the coarse points is perfectly related to the sensor measurement results. However, not all encoded point clouds are original data. For example, processing a point cloud to obtain the minimum distance L between points in the 3D Cartesian coordinate space is required. PC This case arises when the floating-point original spatial data of a point cloud is converted to integer spatial data. The precision of the integers, or more precisely the integers representing the 3D coordinates of the points of the point cloud, provides some spatial sampling of the point cloud. In this case, the change in the 3D coordinates of a point is the minimum distance L of the original data. PC It can respond to spatial changes.
[0090] In addition to making integer representation easier to achieve, such spatial sampling can be advantageous in reducing the size of the point cloud by sampling out overly dense regions. Assuming constant angle sensing, the density of points varies with the distance between the sensor head and the sensed object. r object These dense regions are typically regions very close to the vehicle (carrying the sensor head), since the resolution often falls off as the inverse of L. Most applications (e.g., autonomous driving) do not require sub-millimeter level spatial accuracy, or even sub-centimeter level accuracy. In practice, most sensing systems cannot provide such accuracy. For example, useful accuracy in 3D Cartesian space is around L. PC = 2 cm, and the sensing device can sense each azimuth angle with an angular step size of Δφ = 0.2° = 0.2*2π / 360 radians (in the case of a rotating laser radar, sensing is performed approximately 2000 times per revolution), then the distance (radius) r dense but r dense = L PC / Δφ=2 / (0.2*2π / 360)≒573cm≒5m Smaller objects are oversampled by the sensing system. In this example, the angle step size Δφ is typically the azimuth angle shift between two sensings of the same sensor of the sensor head for sensing the object. In general, for a rotating (laser radar) sensor head, this azimuth angle shift may be constant or may vary over the entire sensing path, as shown in FIG. 7. In either case, the azimuth angle shift Δφ can be obtained from information related to the characteristics of the detection scheme of the sensing device.
[0091] Spatial subsampling (extraction) is done by dividing three (floating point or integer) Cartesian coordinates (x,y,z) into a given number of pixels with the required precision (L PC ) to obtain integer sampling coordinates (x', y', z'), (x',y',z')=L PC *round((x,y,z) / L PC ) Then, the 3D iterative points (i.e., two points with the same 3D sampling coordinates (x', y', z')) can be merged to leave only at most one point for each sampling coordinate. Thus, the points of the point cloud are merged with a step size of L, as shown in Figure 16. PC Located in the 3D mesh.
[0092] Spatial subsampling may occur due to the storage accuracy of the 3D coordinates of the points sensed by the sensor. In this case, the feature distance L PC is related to the maximum precision of the point coordinate format.
[0093] In one variant, the characteristic distance between the points L PC may not necessarily apply to 2D meshes. Conversely, spatial 3D sampling on the surface may be applied (e.g., using an intermediate network), so that the typical distance L between points not located on the mesh PCTherefore, in this case, for the occupied points (shown in all black and drawn on the xy plane), the points in Figure 16 (white) are usually PC The points should be interpreted as other potential points that are not closer than
[0094] In one variant, the characteristic distance between the points L PC The lower bound of should not be satisfied systematically, but should be a strong indication of the minimum distance, i.e., two points should be at least a feature distance L in the 3D Cartesian coordinate space or the 2D Cartesian plane. PC are unlikely to be separated by
[0095] Radius (distance) r from the sensor object For an object located at, the arc length L between two successive sensings of the sensor in the two-dimensional Cartesian coordinate plane arc teeth, L arc =r object *Δφ Therefore, L arc <L PC If , then it is expected that some coarse points in the coarse representation may not correspond to any points in the point cloud. On the other hand, if Larc > LPC, then most of the coarse points are likely to correspond to points in the point cloud.
[0096] In step 150, the number of sensing sens (s j ,λ j ) based on binary data f j is entropy coded.
[0097] The encoding method includes at least one binary data f representing the order index difference Δo. j The next binary data f j The process continues until encoding of at least one binary data f j All binary data in f j When encoding, at least one binary data f jwhere this further order index difference represents the difference between the order indexes of two other successively occupied coarse points, and if all occupied coarse points have been considered, the method ends.
[0098] Number of sensing N sens (λ j ,s j ) does not convey much information if it is small (e.g., less than or equal to 1), so in one embodiment of step 150, the number of sensing sens (s j ,λ j ) is the active threshold th activation Only if greater than N sens (s j ,λ j ) based on binary data f j Otherwise, the number of sensing sens (s j ,λ j ) but at least the coordinate difference C j Based on the binary data f j or in a variant, the number of sensing sens (s j ,λ j ), but at least the neighboring region coordinate difference C j,w (And, optionally, binary data f j,n Based on the sequence of j is entropy coded.
[0099] Coordinate difference C j (or C j,w ) is the binary data f j Since it is very efficient at predicting the value to send a signal to inform j (or the difference in coordinates of the neighboring regions C j,w ) based on binary data f j It is advantageous to entropy code N sens (s j ,λj ) is particularly efficient when it is at most equal to 1.
[0100] In one embodiment of step 150, the sample index s j and the sample index s associated with the sensing time prec coordinate difference C j At this sensing time, the previously encoded or decoded point P prec is the sensor index λ j The current coarse point is not considered in the set of coded points, but is the previously coded point P based on the set of coded points. prec Determine. C j =s j -s prec
[0101] In one embodiment, the previously occupied coarse point P prec is the penultimate occupied rough point P penult It is.
[0102] Figures 17 and 18 show two examples of two-neighborhood occupancy configurations, with the penultimate occupied coarse point P penult does not belong to the causal neighborhood (demarcated by the dashed line). In this case, the coordinate difference C j and the neighborhood occupancy setting is not redundant.
[0103] Figures 19 and 20 show two examples of two-neighborhood occupancy configurations, with the penultimate occupied coarse point P penult belongs to the causal neighborhood. In Fig. 19, the coordinate difference C j is completely included in the neighborhood occupancy set. However, in Fig. 20, the previous occupied coarse point and the penultimate occupied coarse point are equal, and the neighborhood occupancy set cannot detect the overlapping point. Note that although the neighborhood occupancy sets in Figs. 18 and 20 are the same, the coordinate difference C j is certainly different.
[0104] If the neighborhood width W of the causal neighborhood N (e.g., from the coordinate definition of the first currently occupied coarse point (W=3 in Fig. 17)) is large enough, the penultimate occupied coarse point P penult If it is ensured that belongs to this neighborhood, the coordinate difference C j is already included in the neighborhood occupancy setting.
[0105] In some cases, the coordinate difference C is 6, 7, or even 8. j is the first binary data f j It is possible to provide a reliable prediction of
[0106] Preferably, the current sensor "line" (sensor index λ j ) are the two lower "lines" (corresponding to rough points of the same sensor with sensor index λ j-1 and λ j-1 ), and the top two lines (sensor with sensor index λ j+1 and λ j+1 The neighborhood height obtained by adding the first binary data f j Therefore, to guarantee that the penultimate occupied coarse point belongs to the causal neighborhood, we need at least 6 × 5 + 2 = 32 neighbors, which is 2 32 = 1 billion possible neighborhood occupancy configurations.
[0107] In one embodiment, the coordinate difference C j Based on the comparison with the neighborhood width W, the neighborhood coordinate difference C j,w The difference in the neighboring coordinates C is given by j,w Based on the first binary data f j is entropy coded (step 150). C j,w =max(C j ,W)
[0108] The occupancy setting of the causal neighborhood N is determined by at least one second binary data f j, n (index n). In one embodiment of step 150, the first binary data f j contains at least one second binary data f j、n Sequence of and neighbor coordinate difference C j、w The signal is entropy coded based on
[0109] C j,w Instead of C j By using precc If belongs to the causal neighborhood region N, then C j , w is found to be equal to W, in which case the coordinate difference C j The redundancy between and the causal neighborhood region N is removed.
[0110] In one variant, the adjacent coordinate difference C j,w is the previously occupied rough point P prec is equal to a particular value if and only if it belongs to the causal neighborhood region N.
[0111] For example, the difference in neighboring coordinates C j,w is defined as follows: C j,w =max(C j ,W)-W
[0112] And C j,w = 0 if and only if the previously occupied rough point P prec belongs to the causal neighborhood N. Therefore, the neighborhood coordinate difference C j,w is included in the given neighborhood occupancy setting. Otherwise, the neighborhood coordinate difference C j,w >0, the coordinate difference C j is simply C j =C j,w Searched for with +W.
[0113] In one embodiment of step 150, the current coarse point P is given by j The sample index sj depends on the sample index s last and the number of sensing devices N sens (s j,λ j ) based on the value Δj of binary data (f j ) is entropy coded. Δ j =s j -s last -N sens (s j ,λ j )
[0114] In one variant, the binary data fj are entropy coded according to a boundary value Δ′j for the value Δj given by: Δ'j=max(th low ,min(th high ,Δ j )) Here, th low and high are the two thresholds, and th high >th low It is.
[0115] In one embodiment of step 130 shown in FIG. sens (s j ,λ j ) is the sensor index λ j The last occupied rough point P sensed by the sensor with last The radius r associated with object is obtained based on
[0116] In one embodiment of step 130 shown in FIG. 22, the sensing number N sens (s j ,λ j ) can be corrected based on the azimuth angle φ. N sens (s j ,λ j )=floor(L PC ' / L arc ) =floor(L PC *(|cos(φ)|+|sin(φ)|) / (r object *Δφ)
[0117] Here, L PC'=L x +L y =L PC *(|cos(φ)|+|sin(φ)|). The azimuth angle φ is the angle of the current rough point P j represents the sensing of, and the sensing index s j The last occupied rough point P is obtained based on last Azimuth angle φ last The information can be obtained based on the above.
[0118] In one embodiment of step 130, L arc <L PC If, the number of sensing sens (s j ,λ j ) is given by the following formula: N sens (s j ,λ j )=floor(L PC / L arc )=floor(L PC / (r object *Δφ)
[0119] Number of sensing N sens (s j ,λ j ) is the azimuth shift Δφ and the radius r object , and therefore is local in the two-dimensional representation, depending on the azimuthal shift Δφ and the radius r objec t are both sensor indices λ j and sample index s j may depend on
[0120] Characteristic distance L PC is a feature of the point cloud.
[0121] In one embodiment of step 130, the feature distance L PC may be coded into the bitstream, typically into a sequence parameter set (SPS) or a generic parameter set (GPS).
[0122] In one embodiment of step 130, the feature distance L PCcan depend on a three-dimensional or two-dimensional region of space. In this case, the feature distance L PC can be coded region by region.
[0123] In one embodiment of step 130, the sensing number N sens (s j ,λ j ) is equal to the number N, and the arc length L obtained between the current sensing at the current sample index s and the future sensing at sample index s+N arc Characteristic distance L PC is approximately equal to L arc =r object *|φ s+N -φ s |≒L PC The number N can be obtained iteratively by testing N=1, N=2, etc.
[0124] FIG. 23 is a schematic block diagram illustrating steps of a method 200 for decoding point cloud geometry data from a bitstream of encoded point cloud data in accordance with at least one embodiment.
[0125] The decoding method 200 is derived directly from the encoding method 100 .
[0126] In step 210, the coordinates in two-dimensional space of the current coarse point Pj are obtained. The current coarse point Pj is represented by a first coordinate φ in the two-dimensional coordinate (φ, λ) space. j and the second coordinate λ j and the first coordinate s in the two-dimensional coordinate (s, λ) space j and the second coordinate λ j has.
[0127] As described above, in step 130, the number of sensing sens (s j ,λ j ) to get the
[0128] In step 220, the number of sensing sens(s j ,λ j ) to binary data f from bit stream B j Then, entropy decode the result.
[0129] The decoding method then proceeds up to the decoding of one binary data fj next to said at least one binary data representing the order index difference Δo. When all binary data fj representing the order index difference Δo have been decoded, another sequence index difference representing another difference between the sequence indexes of two successively occupied coarse points is decoded, and the method ends when all occupied coarse points have been considered.
[0130] In one embodiment of step 220, the sensing number N sens (s j ,λ j ) is the active threshold th activation Only if greater than N sens (s j ,λ j ) based on binary data f j Otherwise, the number of sensing sens (s j ,λ j ) but at least the coordinate difference C j Based on the binary data f j or in a variant, the number of sensing sens (s j ,λ j ), but at least the difference in neighboring coordinates C j,w (Optionally, we use binary data f j,n Based on the sequence of j Then, entropy decode the result.
[0131] In one embodiment of step 150, the value Δ j or binary data (f j ) is entropy decoded.
[0132] In one embodiment of step 150 or 220, a binary arithmetic encoder or decoder receives a sensing number N sens (s j ,λ j ) or alternatively the coordinate difference C j (C w,j ) and a binary data sequence f j,n Based on the binary data f j is true (f j = 1), and the binary data f j In this case, the number of sensing sens (s j ,λ j ), or alternatively the coordinate difference C j (C w,j ) and binary data f j,n A sequence of can point to elements of a probability table T, where pr=T[N sens (s j ,λ j )] or pr=T[C j ] or pr=T[C w,j ] or pr=T[C w,j ,f j,n ]. The probability pr is the binary data f j After encoding, it can be updated based on its value (false vs. true or 0 vs. 1).
[0133] In one embodiment of step 150 or 220 shown in FIG. j The context-based self-adaptive entropy coding or decoding is performed on the sensing number N sens (s j ,λ j ) or alternatively the coordinate difference C j (C w,j ) and binary data f j,n The method may include selecting a context Ctx based on the sequence of
[0134] The context Ctx is at least N sens(s j ,λ j ) or optional coordinate difference C j Or C j,w and binary data f j,n , where Ctx=T[N sens (s j ,λ j )] or Ctx=T[C j ] or Ctx=T[C w,j ] or Ctx=T[C w,j ,f j,n ] becomes.
[0135] The first binary data f is generated based on the selected context Ctx. j The first binary data f is entropy coded based on the selected context Ctx into a bitstream B. j is entropy decoded based on the context.
[0136] In the variant shown in FIG. 24, the first binary data f j are context-based self-adaptive entropy encoded or decoded by a context self-adaptive binary arithmetic encoder or decoder (CABAC).
[0137] The context Ctx is a set of two binary data j To provide a context index ctxIdx associated with at least the number of sensings N by some selection process, sens (s j , λ j ), or alternatively, the coordinate difference C j (C w,j ) and 2 binary data f j,n The sequence is selected based on:
[0138] A context table Tctx with Nctx entries generally stores the probability associated with a context and stores the probability p ctxIdxThe context is selected based on the context index ctxIdx using the following formula: Ctx=Tctx[ctxIdx]
[0139] For example, the context index ctxIdx is sens (s j ,λ j ), or alternatively the coordinate difference C j (C w,j ) and binary data f j,n A context Ctx can be expressed as Ctx=Tctx[N sens (s j ,λ j )] or Ctx=Tctx[C j ] or Ctx=T[C w,j ] or Ctx=T[C w,j ,f j,n ] will be selected.
[0140] We entropy code the binary data fj into a bit stream B, or we encode it with probability p ctxIdx to entropy decode from bitstream B.
[0141] The entropy encoder is usually an arithmetic encoder, but it may be other types of entropy encoders, such as asymmetric digital systems. In either case, the optimal encoder adds −log2(p ctxIdx ) bit to make f j =1 or -log2(1-p ctxIdx ) bit to make f j = 0 is encoded. Binary data f j Once is encoded (decoded), the encoded binary data f j and p ctxIdx With probability p ctxIdxThe update is usually performed using the updated table. The updated probability replaces the ctxIdx-th entry in the context table Tctx. Then, another binary data f j can be encoded and the analogy can be drawn accordingly. The update cycle that returns the context table is the bottleneck in the encoding workflow, since after performing the update another symbol can be encoded. For this reason, memory access to the context table must be as fast as possible, and minimizing the size of the context table helps simplify the hardware realization.
[0142] The context self-adaptive binary arithmetic decoder is an entropy decoder that decodes a vector of ctxIdx Binary data f encoded from bit stream B using j Besides decoding , the context self-adaptive binary arithmetic encoder performs substantially the same operations as the context self-adaptive binary arithmetic encoder.
[0143] In the appropriate context (i.e., the probability that the binary data fj is at most equal to 1, p ctxIdx Choosing the appropriate context (to estimate the causal neighborhood of the currently occupied coarse point) is important to obtain good compression. Therefore, the context selection should obtain this appropriate context using the occupancy data of at least one neighboring coarse point that belongs to the causal neighborhood of the currently occupied coarse point and the correlation between them.
[0144] FIG. 25 shows an exemplary schematic block diagram for implementing the system of each aspect and embodiment.
[0145] System 300 may be implemented as one or more devices and may include various components as described below. In various embodiments, system 300 may be configured to implement one or more aspects described herein.
[0146] Examples of devices that may comprise all or part of system 300 include personal computers, laptop computers, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, connected cars and their associated processing systems, head mounted displays (HMDs, see-through glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process output from video decoders, pre-processors that provide input to video encoders, web servers, set-top boxes, and any other devices for processing point clouds, videos, or images, or other communications devices. The elements of system 300 may be implemented singly or in combination on a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 300 may be distributed across multiple ICs and / or discrete components. In various embodiments, system 300 may be communicatively coupled to other similar systems or other electronic devices, for example, via a communications bus or dedicated input and / or output ports.
[0147] The system 300 includes at least one processor 310 configured to execute instructions loaded therein to, for example, implement aspects described herein. The processor 310 may include embedded memory, input / output interfaces, and various other circuits known in the art. The system 300 may include at least one memory 320 (e.g., volatile and / or non-volatile memory devices). The system 300 may include a storage device 340 including non-volatile and / or volatile memory, including, but not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Flash memory, magnetic disk drives, and / or optical disk drives. By way of non-limiting example, the storage device 340 may include an internal storage device, an additional storage device, and / or a network-accessible storage device.
[0148] The system 300 may include an encoder / decoder module 330 configured to process data to provide encoded / decoded point cloud geometry shape data, for example, and the encoder / decoder module 330 may include its own processor and memory. The encoder / decoder module 330 may represent a module(s) included in a device to perform encoding and / or decoding functions. As is known, a device may include either one or both of an encoding and decoding module. Also, the encoder / decoder module 330 may be implemented as a separate element of the system 300 or may be coupled within the processor 310 as a combination of hardware and software known to those skilled in the art.
[0149] Program code loaded into the processor 310 or the encoder / decoder 330 to perform aspects described herein may be stored in the storage device 340 and subsequently loaded into the memory 320 and executed by the processor 310. According to various embodiments, during execution of processes described herein, one or more of the processor 310, the memory 320, the storage device 340, and the encoder / decoder module 330 may store one or more of the following items: point cloud frames, encoded / decoded geometry / attribute videos / images or portions of encoded / decoded geometry / attribute videos / images, bitstreams, matrices, variables, and equations, formulas, logic for operations or intermediate or final results of operations.
[0150] In some embodiments, memory within the processor 310 and / or the encoder / decoder module 330 may be used to store instructions and provide working memory for processes performed during encoding or decoding.
[0151] However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 310 or the encoder / decoder module 330) is used for one or more of these functions. The external memory may be the memory 320 and / or the storage device 340, e.g., dynamic volatile memory and / or non-volatile flash memory. In some embodiments, the external non-volatile flash memory is used to store, for example, an operating system of a television. In at least one embodiment, a fast external dynamic volatile memory such as RAM may be utilized as working memory for video encoding / decoding and decoding operations, e.g., for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 Video), HEVC (High Efficiency Video Coding / Decoding), VVC (Versatile Video Coding / Decoding), or MPEG-I Parts 5 or 9.
[0152] As indicated in block 390, inputs can be provided to the elements of system 300 via various input devices. Such input devices include, but are not limited to, (i) an RF section capable of receiving RF signals transmitted wirelessly from a broadcast station or the like, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0153] In various embodiments, the input devices of block 390 have associated corresponding input processing elements as known in the art. For example, the RF section may be associated with each of the following required elements: (i) selecting a desired frequency (also called signal selection, or limiting the signal within a frequency band), (ii) downconverting the selected signal, (iii) selecting a signal frequency band by controlling the frequency band back to a narrow frequency band, (for example) referred to as a channel in some embodiments, (iv) demodulating the downconverted and frequency band limited signals, (v) performing error correction, and (vi) demultiplexing to select a desired data packet flow. The RF section of various embodiments includes elements purposely performing these functions, such as frequency selectors, signal selectors, frequency band limiters, channel selectors, filters, downconverters, demodulators, error correction devices, and demultiplexers. The RF section may include a tuner performing each of these functions, including, for example, downconverting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency near baseband) or to baseband.
[0154] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted over a wired (e.g., cable) medium, after which the RF section can perform frequency selection by filtering, down-converting, and re-filtering to obtain a desired frequency band.
[0155] In various embodiments, the order of these (and other) elements may be rearranged, some of these elements may be eliminated, and / or other elements that perform similar or different functions may be added.
[0156] Adding elements can include inserting elements such as amplifiers and analog-to-digital converters between existing elements, In various embodiments, the RF section can include an antenna.
[0157] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 300 to other electronic devices via USB and / or HDMI connections. It should be noted that aspects of the input processing (e.g., Reed-Solomon error correction) may be implemented, for example, in a separate input processing IC or in the processor 310, when desired. Thus, it should be understood that aspects of the USB or HDMI interface processing may be implemented, when desired, in a separate interface IC or in the processor 310. Upon demodulation, the error corrected and demultiplexed stream may be provided to various processing elements, including the processor 310 and the encoder / decoder 330, which operates in conjunction with memory and storage elements, to process the data stream when desired for display on an output device.
[0158] The various elements of the system 3000 may be provided within a unitary housing, where a suitable connection layout 340 (e.g., internal buses known in the art, including I2C buses, wires, and printed circuit boards) may be used to connect the elements together and transmit data between them.
[0159] System 300 may include a communication interface 350 such that it may communicate with other devices over a communication channel 700. Communication interface 350 may include, but is not limited to, a transceiver configured to transmit and receive data over communication channel 700. Communication interface 350 may include, but is not limited to, a modem or a network card, and communication channel 700 may be implemented within a wired and / or wireless medium, for example.
[0160] In various embodiments, a Wi-Fi network, such as IEEE 802.11, may be used to stream data to the system 300. The Wi-Fi signal in these embodiments may be received via a communication channel 700 suitable for Wi-Fi communication and the communication interface 350. The communication channel 700 in these embodiments may typically be connected to an access point or router that provides access to external networks, including the Internet, allowing streaming applications and other over-the-top wireless communications.
[0161] Another embodiment may provide streaming data to the system 300 using a set-top box, which carries the data through an HDMI connection in the input block 390.
[0162] In some embodiments, the RF connection of input block 390 is used to provide streaming data to system 300 .
[0163] Streaming data can be used as a form of signaling information used by the system 300. The signaling information can include information on the number of points, coordinates, and / or sensor configuration parameters, such as a bitstream B and / or a point cloud.
[0164] It should be noted that signaling can be achieved in various manners, for example, in various embodiments, one or more syntax elements, flags, etc. can be used to transmit signaling information to a corresponding decoder.
[0165] System 300 can provide output signals to a variety of output devices, including a display 400, speakers 500, and other peripherals 600. In various example embodiments, other peripherals 600 can include one or more of a separate DVR, a disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of system 300.
[0166] In various embodiments, control signals may be communicated between system 300 and display 400, speaker 500 or other peripherals 600 using AV.Link (Audio / Video Link), CEC (Consumer Electronics Control) or other communication protocol signaling enabling device-to-device control, with or without a user.
[0167] Output devices can be communicatively connected to the system 300 via dedicated connections by corresponding interfaces 360, 370 and 380.
[0168] Optionally, an output device can be connected to the system 300 using a communication channel 700 via the communication interface 350. The display 400 and the speaker 500 can be integrated into a single unit along with other components of the system 300 such as an electronic device (e.g., a television).
[0169] In various embodiments, the display interface 360 can include a display driver, such as a timing controller (T Con) chip.
[0170] For example, if the RF portion of input 390 is part of a separate set-top box, display 400 and speaker 500 are optionally separate from one or more of the other components. In various embodiments where display 400 and speaker 500 may be external components, the output signals may be provided via dedicated output connections (including, for example, an HDMI port, a USB port, or a COMP output terminal).
[0171] 1-25, various methods are described herein, each of which includes one or more steps or actions to achieve the described method. To the extent that a specific order of steps or actions is required for the precise operation of the method, the order and / or use of specific steps and / or actions can be modified or combined.
[0172] Although some examples have been described with respect to block diagrams and / or operational flow charts, each block represents a circuit element, a module, or a portion including one or more executable instruction codes for implementing a specified logic function(s). It should be noted that in other embodiments, the function(s) shown in the blocks may not occur in the order shown. For example, two blocks shown one after the other may in fact be executed essentially in parallel, or the blocks may be executed in the reverse order, depending on the functions involved.
[0173] For example, the embodiments and aspects described herein may be implemented in a method or process, an apparatus, a computer program, a data stream, a bit stream, or a signal. Even if discussed only in the context of a single type of embodiment (e.g., discussed only as a method), embodiments of the discussed features may be implemented in other forms (e.g., an apparatus or a computer program).
[0174] The methods may be implemented, for example, in a processor, which generally refers to a processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device, etc. Processors further include communication devices.
[0175] Also, the methods may be implemented with instructions executed by a processor, and such instructions (and / or data values produced by the embodiments) may be stored in a computer-readable storage medium. A computer-readable storage medium may take the form of a computer-readable program product having computer-readable program code embodied in and executable by a computer, embodied in one or more computer-readable media. Given the inherent ability to store information thereon and retrieve information provided thereby, a computer-readable storage medium as used herein may be considered a non-transitory storage medium. A computer-readable storage medium may be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. In addition, the following provides more specific examples of computer-readable storage media to which the present embodiment can be applied, but as one of ordinary skill in the art can easily recognize, it should be understood that these are merely illustrative and not an exhaustive list: portable computer floppy disks, hard disks, read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0176] The instructions may create an application tangibly embodied on a processor-readable medium.
[0177] For example, instructions may reside in hardware, firmware, software, or a combination thereof. For example, instructions may be found in an operating system, a separate application, or a combination of both. A processor may thus be characterized as, for example, a device configured to perform a process or a device that includes a processor-readable medium (e.g., a storage device) having instructions for performing a process. Additionally, in addition to or in lieu of instructions, the processor-readable medium may store data values produced by an embodiment.
[0178] The devices may be implemented in, for example, suitable hardware, software, and firmware. Examples of such devices include personal computers, laptop computers, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head mounted displays (HMDs, see-through glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process output from video decoders, pre-processors that provide input to video encoders, web servers, set-top boxes, and any other device for processing point clouds, video or images, or other communications devices. It is noted that the devices may be mobile and may be mounted in a moving vehicle.
[0179] The computer software may be implemented in the processor 310, hardware, or a combination of hardware and software. As a non-limiting example, an embodiment may be implemented in one or more integrated circuits. The memory 320 may be of any type suitable for the technology environment and may be implemented in any suitable data storage technology (as a non-limiting example, for example, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memories and removable memories). As a non-limiting example, the processor 310 may be of any type suitable for the technology environment and may cover one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.
[0180] As will be apparent to one skilled in the art, the embodiments can generate various signals shaped to carry, for example, storable or transmittable information. The information can include, for example, instructions for performing a method or data generated by one of the described embodiments. For example, the signal can be shaped to carry a bit stream of the described embodiments. The signal can be shaped, for example, into an electromagnetic wave (e.g., a radio frequency portion of the frequency spectrum) or a baseband signal. The shaping can include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal can be, for example, analog or digital information. As is well known, the signal can be transmitted over different wired or wireless links. The signal can be stored in a processor readable medium.
[0181] The terms used herein are used only to describe particular embodiments and are not intended to be limiting. Unless the context clearly dictates otherwise, the singular forms "a," "an," and "the" as used herein include the plural forms. Furthermore, as used herein, the terms "include / comprise" and / or "including / comprising" may indicate the presence of a described feature, integer, step, operation, element, and / or component, etc., but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof. Also, when an element is said to be "responsive to" or "connected" to another element, it may be directly responsive to or connected to the other element, or intermediate elements may be present. Conversely, when an element is said to be "directly responsive to" or "directly connected" to another element, intermediate elements are not present.
[0182] For example, in the case of "A / B," "A and / or B," and "at least one of A and B," the use of any one of the symbols / terms " / ," "and / or," and "at least one of" is intended to cover the selection of the first listed option (A), or the selection of the second listed option (B), or the selection of two options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such language is intended to cover only the selection of the first listed option (A), or only the selection of the second listed option (B), or only the selection of the third listed option (C), or only the selection of the first and second listed options (A and B), or only the selection of the first and third listed options (A and C), or only the selection of the second and third listed options (B and C), or all three options (A, B, and C). This can be extended to any number of listed items as would be apparent to one of skill in the art.
[0183] Various numerical values may be used in this application, and the specific values are exemplary, and the embodiments described are not limited to these specific values.
[0184] It should be noted that terms such as first, second, etc. may be used to describe various elements in this specification, but are not limited to these terms. These terms are used only to distinguish one element from another element. For example, a first element can be referred to as a second element, and similarly, a second element can be referred to as a first element, without departing from the teachings of this application. No ordering is implied between the first element and the second element.
[0185] References to "one example" or "example" or "one embodiment" or "embodiment" and other variations are often used to convey that a particular feature, structure, characteristic, etc. (as described in conjunction with the example / embodiment) is included in at least one example / embodiment. Thus, appearances of the terms "in one example" or "in an example" or "in some examples" or "in one embodiment" or "in an embodiment" and any other variations appearing in various places in this application are not necessarily all referring to the same example.
[0186] Similarly, references herein to "according to an embodiment" or "in an embodiment" and other variations are often used to convey that a particular feature, structure, or characteristic (as described in conjunction with an embodiment) may be included in at least one embodiment. Thus, the phrases "according to an embodiment" or "in an embodiment" appearing in various places in the specification do not necessarily refer to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
[0187] The reference numerals of the drawings appearing in the claims are used for explanation only and do not limit the scope of the claims. Although not explicitly described, the present embodiment / examples and modifications can be used in any combination or partial combination.
[0188] It is understood that when a figure is presented as a flow chart, a corresponding apparatus block diagram is also provided. Similarly, it is understood that when a figure is presented as a block diagram, a flow chart of the corresponding method / process is also provided.
[0189] Some figures include arrows that indicate a primary direction of communication in a communication path, however, it should be understood that communication can occur in a direction opposite to that of the illustrated arrow.
[0190] Various embodiments relate to decoding. As used herein, "decoding" may cover all or part of a process, such as performing a received point cloud frame (which may include a received bitstream encoding one or more point cloud frames) to generate a final output suitable for display or further processing in a reconstructed point cloud domain. In various embodiments, such a process may include one or more of the processes typically performed by a decoder. In various embodiments, for example, such a process may alternatively include a process performed by a decoder of various embodiments described herein.
[0191] As a further example, in one embodiment, "decoding" may refer to only inverse quantization, in one embodiment, "decoding" may refer to entropy decoding, in another embodiment, "decoding" may refer to differential decoding, and in another embodiment, "decoding" may refer to a combination of inverse quantization, entropy decoding, and differential decoding. Depending on the context specifically described, it is obvious and easy to understand for one skilled in the art whether the term "decoding process" refers specifically to a subset of operations or to a more general decoding process.
[0192] Various embodiments relate to encoding. As at least in the manner of the above discussion of "decoding," "encoding" as used herein may cover all or part of the process of, for example, executing an input point cloud frame to generate an encoding bitstream. In various embodiments, this type of process includes one or more of the processes typically performed by an encoder. In various embodiments, such processes may include, or may selectively include, the processes performed by the encoder of each embodiment described herein.
[0193] As a further example, in one embodiment, "encoding" may refer only to quantization, in one embodiment, "encoding" may refer only to entropy coding, in another embodiment, "encoding" may refer only to differential coding, and in another embodiment, "encoding" may refer to a combination of quantization, differential coding, and entropy coding. Depending on the context in which a particular description is made, it may be clear and easy to understand for one of ordinary skill in the art whether the term "encoding process" refers specifically to a subset of operations or to a more general encoding process.
[0194] Additionally, the application may refer to "obtaining" various pieces of information. Obtaining information may include one or more of estimating information, calculating information, predicting information, or looking up information from a memory.
[0195] Additionally, the application may refer to "accessing" various pieces of information, which may include one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0196] The application may also refer to "receiving" various information. Like "access," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). In another manner, terms of operations such as storing information, processing information, transmitting information, moving information, copying information, deleting information, calculating information, determining information, predicting information, or estimating information are typically associated with "receiving."
[0197] Moreover, as used herein, the term "signal" specifically refers to instructing a corresponding decoder to do something specific. For example, in some embodiments, an encoder transmits a signal to inform a specific piece of information, such as the number or coordinates of points in a point cloud or sensor setting parameters. In this manner, the same parameters can be used at the encoder side and the decoder side in some embodiments. Thus, for example, the encoder can transmit a specific parameter to the decoder (explicit signaling), so that the decoder can use the same specific parameter. Conversely, if the decoder has a specific parameter and another parameter, signaling that does not require transmission (indirect signaling) can be used to inform the decoder and facilitate the selection of the specific parameter. To avoid transmitting any actual function, bit savings are achieved in various embodiments. It should be appreciated that signaling can be accomplished in various ways. For example, in various embodiments, one or more grammatical elements, flags, etc. are used to transmit information to a corresponding decoder. Although the above relates to the verb form of the word "signal", the word "signal" may also be used as a noun in this specification.
[0198] Although several embodiments have been described above, it should be understood that various modifications may be made. For example, elements of different embodiments may be combined, supplemented, modified, or deleted to produce other embodiments. Also, as will be appreciated by those skilled in the art, other structures and processes may be substituted for the disclosed structures and processes, resulting in embodiments that perform essentially the same function(s) in essentially the same way(s) to achieve at least essentially the same result(s) as the disclosed embodiments. Accordingly, these and other embodiments are contemplated by the present application.
Claims
1. 1. A method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, comprising the steps of: - Current rough point (P j ) in the two-dimensional space (s j , λ j ) (120); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; At least one binary data (f j ) is obtained (105), and the at least one binary data (f j ) each of the coarse points, said order index difference representing the difference between the order indexes of two consecutively occupied coarse points; 1. A method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, comprising:
2. 1. A method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the method comprising: - Current rough point (P j) in the two-dimensional space (210); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into a bitstream; and At least one binary data (f j ), wherein the order index difference represents the difference between the order indexes of two consecutively occupied coarse points; 1. A method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space from a bitstream, comprising:
3. The number of sensing (N sens (s j , λ j ) is the active threshold (th activation ), the binary data (f j The entropy coding (150) or entropy decoding (220) of the sensing number (N sens (s j , λ j )), otherwise based on at least the current rough point (P j ) and a sensor index (λ) associated with the current rough point. j) the previously encoded or decoded rough point (P prec ) and the first coordinate of one of the j ) based on the binary data (f j ) entropy encoding or entropy decoding, 3. The method according to claim 1 or 2.
4. The binary data (f j ) is entropy coded (150) or entropy coded (220) using the sample index (s j ) depends on the value (Δ j ), another sample index (s last ) and the sensing number (N sens (s j , λ j )) at the sensing time, the last occupied rough point (P last The point cloud point represented by the sensor index (λ j ) sensed by the sensor associated with the 3. The method according to claim 1 or 2.
5. The value (Δ j ) is defined by two thresholds:
5. The method of claim 4.
6. The number of sensing (N sens (s j , λ j ) is the last occupied rough point (P last ) associated with the radius (r object ) and / or azimuth angle (φ last ), and the last occupied rough point (P last ) is the current rough point (P j ) associated with the sensor (λ j ) represents the sensed points of the point cloud, The method according to any one of claims 1 to 5.
7. The number of sensing (N sens (s j , λ j ) is a point cloud characteristic distance (L PC ), and the arc length (L) defined in a two-dimensional Cartesian coordinate plane between two successive sensings of the sensor associated with the current rough point. arc ) depends on The method according to any one of claims 1 to 6.
8. The arc length (L arc ) is the last occupied coarse point (P last ) and the azimuth shift between two successive sensings.
8. The method of claim 7.
9. The point cloud characteristic distance (L PC ) is encoded into the bitstream; 9. The method according to claim 7 or 8.
10. 1. An apparatus for encoding point cloud geometry data represented by ordered coarse points occupying some discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the apparatus comprising at least one processor, the at least one processor comprising: - Current rough point (P j ) in the two-dimensional space (s j , λ j ) and - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) and obtain the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; and At least one binary data (f j ), and obtaining the at least one binary data (f j ) wherein the order index difference represents a difference between the order indexes of two consecutively occupied coarse points.
1. An apparatus for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, comprising:
11. 1. An apparatus for decoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space from a bitstream, the apparatus comprising: at least one processor, the at least one processor comprising: - Current rough point (P j ) in the two-dimensional space; - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) and obtain the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j) into said bitstream; At least one binary data (f j ), wherein the order index difference represents a difference between the order indexes of two consecutively occupied coarse points.
1. An apparatus for decoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space from a bitstream, comprising:
12. 1. A computer program product comprising instructions, which when executed by one or more processors, cause the one or more processors to perform a method of encoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space into a bitstream, the method comprising: - Current rough point (P j ) in the two-dimensional space (s j , λ j ) (120); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; At least one binary data (f j) is obtained (105), and the at least one binary data (f j ) each of the coarse points, said order index difference representing the difference between the order indexes of two consecutively occupied coarse points; 23. A computer program product comprising:
13. A non-transitory storage medium carrying program code instructions for executing a method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the method comprising: - Current rough point (P j ) in the two-dimensional space (s j , λ j ) (120); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; At least one binary data (f j ) is obtained (105), and the at least one binary data (f j ) each of the coarse points, said order index difference representing the difference between the order indexes of two consecutively occupied coarse points; A non-transitory storage medium.
14. 1. A computer program product comprising instructions, which when executed by one or more processors, cause the one or more processors to perform a method of decoding, from a bitstream, point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space, the method comprising: - Current rough point (P j ) in the two-dimensional space (210); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; and At least one binary data (f j ), wherein the order index difference represents the difference between the order indexes of two consecutively occupied coarse points; 23. A computer program product comprising:
15. A non-transitory storage medium carrying program code instructions for performing a method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the method comprising: - Current rough point (P j ) in the two-dimensional space (210); - the current rough point (P j ) based on the number of sensing (N sens (s j , λ j ) is acquired (130), and the sensing number (N sens (s j , λ j )) is the current rough point (P j ) associated with the sensor (λ j ) represents the average number of consecutive sensings required to sense another rough point; The number of sensing (N sens (s j , λ j )) based on the binary data (f j ) into said bitstream; and At least one binary data (f j ), wherein the order index difference represents the difference between the order indexes of two consecutively occupied coarse points; A non-transitory storage medium.