Point cloud data processing method, device, computer program, and storage medium

By dynamically adjusting the basic orientation step width in point cloud data encoding, the problems of low encoding efficiency and high latency in the existing technology are solved, and a more efficient point cloud data encoding and decoding process is realized, which is suitable for application scenarios that process large amounts of point cloud data in real time.

JP7660705B2Active Publication Date: 2025-04-11BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023560961
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-04-09
Filing Date
2021-10-13
Publication Date
2025-04-11
Estimated Expiration
2041-10-13

AI Technical Summary

Technical Problem

In the encoding and decoding process of point cloud data, it is difficult to take into account simplicity, low latency and compression performance. Especially when transmitting sparse geometric data, there are problems of low encoding efficiency and high latency.

Method used

The basic azimuth step width is dynamically adjusted to encode and decode according to the density and distribution characteristics of point cloud data. The specific method includes dynamically scaling the basic azimuth step width according to the distance of the point and cloud points during the encoding process, and decoding and data reconstruction according to the scaled step width during the decoding process.

Benefits of technology

It improves the encoding efficiency and decoding performance of point cloud data, reduces the delay in the encoding process, and optimizes the cost of data transmission, and is suitable for application scenarios such as autonomous vehicles that require real-time processing of large amounts of point cloud data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007660705000006
    Figure 0007660705000006
  • Figure 0007660705000007
    Figure 0007660705000007
  • Figure 0007660705000008
    Figure 0007660705000008
Patent Text Reader

Abstract

A method and apparatus for encoding / decoding a point cloud into / from a bitstream of encoded point cloud data representing a physical object, where each point of the point cloud is associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point. The method includes scaling a base azimuth step width used to calculate a predicted azimuth angle of the point cloud point based on the decoding radius of the point. The azimuth step width is thus dynamically scaled and therefore depends on the radius of the point cloud point.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-references to related applications

[0001] This application claims priority to European Patent Application No. EP21305461.2, filed April 9, 2021, the contents of which are incorporated and disclosed by reference in their entirety. [Technical field]

[0002] This application relates generally to point cloud compression, and more particularly to a method and apparatus for encoding / decoding point cloud geometric data captured by a spin sensor head. [Background technology]

[0003] This section is intended to introduce the reader to aspects of the present invention that are related to at least one exemplary embodiment of the present application for which protection is sought, and that are described below. It is believed that this discussion is helpful in providing the reader with background information to aid in understanding the aspects of the present application.

[0004] As a kind of representation format of 3D data, point clouds have recently attracted attention due to their various features in terms of representing any type of physical object or scene. Point clouds can be used for various purposes such as cultural heritage and buildings, for example, by scanning objects such as sculptures or architectural structures in a 3D manner, sharing the spatial arrangement of the objects even if the objects are not transmitted or visited. It is also a way to preserve the knowledge of the objects in case they are destroyed, for example, a temple destroyed by an earthquake. Such point clouds are usually static, colored and large.

[0005] Another use case is topology and cartography: with a 3D representation, maps are not limited to flat surfaces, but can also include relief terrain. Currently, Google Maps is a good example of a 3D map, but it uses a mesh rather than a point cloud. However, a point cloud may be a suitable data format for a 3D map, and such point clouds are usually static, colored and large.

[0006] Virtual reality (VR), augmented reality (AR) and immersive worlds have been a hot topic lately, and many foresee them as the future of 2D flat video. The basic tenet is to immerse the viewer in the environment around them, as opposed to standard television, where the viewer can only see the virtual world in front of them. There are several stages of immersion, depending on the viewer's degree of freedom in the environment. Point clouds are a good candidate format for distributing VR / AR worlds.

[0007] The automotive industry, and especially the predicted autonomous vehicles, are also a sector where point clouds can be used extensively: autonomous vehicles need to "sense" their surrounding environment and make good driving decisions based on the presence and nature of the nearest detected objects and the configuration of the road.

[0008] A point cloud is a set of points in three-dimensional (3D) space, selectably adding additional values ​​to each. These additional values ​​are usually called attributes. Attributes may be, for example, a triplet color, a material property (e.g. reflectance) and / or a two-component surface normal vector associated with the points.

[0009] A point cloud is therefore a combination of geometry (position in 3D space, usually given by 3D Cartesian coordinates x, y and z) and attributes.

[0010] Point clouds can be captured by a variety of devices, such as camera arrays, depth sensors, laser instruments (also known as Light Detection and Ranging, LIDAR), radar, or can be computer generated (e.g., in movie post-production). Depending on the use case, a point cloud may contain thousands or even billions of points for mapping applications. The original representation of the point cloud requires a very high number of bits per point, at least a dozen bits per Cartesian coordinate x,y, and optionally provides more bits for attribute(s) to use for color, e.g., three times 10 bits.

[0011] In many applications, it is crucial to be able to distribute point clouds to end users or store them on servers while maintaining an acceptable (or very good) quality of experience, consuming only a reasonable amount of bitrate or storage space. Efficient compression of these point clouds is a key point for practical use in the distribution chain for many immersive worlds.

[0012] For distribution and visualization by end users, such as in AR / VR glasses or other 3D-enabled devices, the compression can be lossy (e.g. in video compression). Other use cases, such as medical applications or autonomous driving, require indeed lossless compression, so that the outcome of decisions derived from subsequent analysis of the compressed and transmitted point cloud is not altered.

[0013] Until recently, the issue of point cloud compression (aka PCC) has not been addressed in the mass market and there are no standardized point cloud codecs available. In 2017, the Standardization Working Group ISO / JCT1 / SC29 / WG11, also known as the Motion Picture Experts Group or MPEG, started a work item on point cloud compression. This resulted in two standards: MPEG-I Part 5 (ISO / IEC 23090-5) or Video-Based Point Cloud Compression (V-PCC) MPEG-I Part 9 (ISO / IEC 23090-9) or Geometry-Based Point Cloud Compression (G-PCC)

[0014] The V-PCC encoding method compresses the point cloud by performing multiple projections on the 3D object, resulting in 2D patches that are packed into an image (or video when dealing with dynamic point clouds). Conventional image / video codecs are then used to compress the acquired images or videos, thus making the most of already deployed image and video solutions. In essence, V-PCC is only efficient on dense, continuous point clouds, since image / video codecs cannot normally compress non-smooth patches, such as those obtained from projections of sparse geometric data captured by lidar.

[0015] The G-PCC coding method provides two solutions for compressing the captured geometric data.

[0016] The first solution is based on an occupancy tree, locally one of octrees, quadtrees or binary trees, to represent the geometry of the point cloud. Occupied nodes are partitioned into fixed sizes, and occupied leaf nodes provide the 3D location of the points, usually located at the center of these nodes. Occupancy information is carried by occupancy flags, which send signals to inform the occupancy status of each of the node's children. A high level of compression of occupancy flags for dense point clouds is possible by using a neighborhood-based prediction technique. Sparse point clouds can be addressed by directly encoding the location of points other than the minimum size in the node, stopping the tree structure when only isolated points exist in the node, and this technique is called direct coding mode (DCM).

[0017] The second solution is based on a prediction tree, where each node represents the 3D location of one point, and the parent / child relationships between nodes represent the spatial prediction from parent to child. This method can only solve sparse point clouds, and has the advantage of providing lower latency and simpler decoding than occupancy trees. However, compared to the first occupancy-based method, it only provides slightly better compression performance, and the encoding is more complex, as the encoder needs to intensively search for the best predictor (among a long list of potential predictors) when building the prediction tree.

[0018] In these two solutions, the attribute (decoding) coding is performed after the geometry (decoding) coding is completed, so in effect, two codings occur. Thus, the low latency of the joint geometry / attributes is achieved by using slices that divide the 3D space into independently coded subvolumes, without the need for prediction between subvolumes. Using many slices has a significant impact on compression performance.

[0019] The combination of encoder and decoder simplicity, low latency and compression performance requirements is a problem that traditional point cloud codecs have not adequately addressed.

[0020] One important use case is the transmission of sparse geometric data captured by spinning sensor heads (e.g. spinning lidar heads) mounted on moving vehicles. This typically requires a simple, low-latency embedded encoder. Simplicity is required because the encoder may be located on a computing unit for parallel execution of other processing (e.g. (semi)autonomous driving), thus limiting the available processing power of the point cloud encoder. Low latency is also required to enable fast transmission from the vehicle to the cloud, facilitating checking the local traffic in real time based on the collection of multiple vehicles, and making decisions based on the traffic information fast enough. 5G can also be used and the latency can be low enough, but the encoder itself should not introduce excessive latency due to encoding. And the data stream from millions of cars to the cloud can be very large, so compression performance becomes very important.

[0021] Certain a priori related to the sparse geometric data captured by the spin sensor head are used to derive an encoding / decoding method that is highly efficient.

[0022] For example, G-PCC utilizes the elevation angles (relative to the horizontal ground) captured by a spinning sensor head, e.g. those depicted in Fig. 1 and Fig. 2. The spinning sensor head 10 includes a set of sensors 11 (e.g. lasers), where five sensors are shown. The spinning sensor head 10 is able to capture geometric data of a physical object, i.e. the 3D positions of the points of a point cloud, by rotating about a vertical axis z. The geometric data captured by the spinning sensor head is then expressed in spherical coordinates (r 3D ,φ,θ) denoted by r 3D is the distance between point P and the center of the spinning sensor head, φ is the azimuth angle of the sensor head spinning relative to the reference, and θ is the elevation angle for an elevation index k of the spinning sensor head relative to the horizontal reference plane of the sensor (here the y-axis). The elevation index k may be, for example, the elevation angle of sensor k, or the kth sensor position where a single sensor detects each of the successive elevation angles in turn.

[0023] In the geometric data captured by the spin sensor head, we observe a regular distribution along the azimuth angle, as depicted in Figure 3. This regularity is used in G-PCC to obtain a quasi-1D representation of the point cloud, where, up to the noise, we 3D Only the angle φ and θ are in the range of continuous values, and only the angles φ and θ are in the range of discrete values. i ∀i=0~I-1, where I is the number to capture the azimuth angle of the point, and θ k ∀k=0 to K-1, where K is the number of sensors in the spin sensor head 10. Basically, G-PCC uses sparse geometric data captured by the spin sensor head along the 2D discrete angle plane (φ, θ) depicted in Figure 3 and the radius value r 3D Represents.

[0024] In spherical coordinate space, we use the discrete property of angles to predict the location of the current point based on the encoded points; this quasi-1D property has already been exploited in the occupancy and prediction trees in G-PCC.

[0025] More precisely, occupancy trees make extensive use of DCM and use a context-adaptive entropy encoder to entropy-encode the direct positions of points within a node. Then, a local transformation from the point positions to coordinates (φ,θ) and the resulting discrete angular coordinates (φ i ,θ k ) position.

[0026] The quasi-1D properties of this coordinate space (r,φ i ,θ k ), the prediction tree directly encodes a first version of the position of the current point in spherical coordinates (r,φ,θ), where r is the projection radius in the horizontal xy plane, denoted as r in Figure 4. 2D Then we transform the spherical coordinates (r,φ,θ) into 3D Cartesian coordinates (x,y,z) and encode the xyz residual to address the errors in the coordinate transformation, the approximation of the elevation and azimuth angles, and potential noise.

[0027] FIG. 5 shows a point cloud encoder that is similar to the G-PCC prediction tree based encoder.

[0028] First, convert the Cartesian coordinates (x,y,z) of the points in the point cloud into spherical coordinates (r,φ,θ), where (r,φ,θ) = C2A(x,y,z).

[0029] The transformation function C2A(.) is given in part by the following equation: r=round(sqrt(x*x+y*y) / ΔIr) φ=round(atan2(y,x) / ΔIφ) where round() is the rounding up operation to the nearest integer value, sqrt() is the square root function, and atan2(y,x) is the arctangent applied to y / x.

[0030] ΔIr and ΔIφ are the internal precision of the radius and azimuth, respectively. They are usually the same as the respective quantization step widths, i.e., ΔIφ=Δφ and ΔIr=Δr. Δφ=2π / 2N And, Δr=2 M *Basic quantization step size where M and N are two parameters of the encoder for signaling in the bitstream (e.g., in a geometry parameter set), and the base quantization step size is typically 1. Typically, for lossless coding, N may be 17, and M may be 0.

[0031] The encoder derives Δφ and Δr by minimizing the cost (e.g., number of bits) of encoding the spherical coordinate representation in Δφ Cartesian space and the x-y-z residual.

[0032] For ease of explanation, hereinafter, Δφ=ΔIφ and Δr=ΔIr.

[0033] For the sake of clarity and simplicity, in the following, θ is defined as the elevation angle value obtained by the following formula: θ=atan(z / r),

[0034] Here, atan(.) is the arctangent function. However, in G-PCC, for example, θ is k θ is an integer value indicating the elevation index k of θ (i.e., the index of the kth elevation angle), so that the operations described below (prediction, residual (decoding) coding, etc.) performed on θ are applied to the elevation index. The advantages of index k and how to substitute elevation index k for θ are easily understood by those skilled in the art of point cloud compression. Moreover, those skilled in the art of point cloud compression can easily understand that such subtleties do not affect the principles of the proposed invention.

[0035] Then, the spherical coordinates (r,φ,θ) and the predictor PR n The residual spherical coordinates (r res ,φ res ,θ res ) is given by the following formula: (r res ,φres ,θ res )=(r,φ,θ)-(r pred ,φ pred ,θ pred ) =(r,φ,θ)-(r n ,φ n ,θ n )-(0,m*φ step ,0)(1) Here, (r n ,φ n ,θ n ) is the predicted radius obtained from a predictor selected from the candidate predictor list PR0, PR1, PR2, and PR3, is the predicted azimuth angle, and is the predicted elevation angle, and m is the predicted integer cardinal azimuth step size φ to be added to the azimuth angle. step It is.

[0036] The encoder determines the basic azimuth step width φ based on the frequency and rotation speed captured by the spin sensor head at different elevation angles, for example, based on the number of detections per turn NP as follows: step can be derived, φ step =(2*π) / (NP*ΔIφ) (2)

[0037] For example, the cardinal direction step width φ step Or the number of detections per turn NP is encoded in the bit stream B in the geometry parameter set. Optionally, NP is an encoder parameter and can be signaled in the bit stream in the geometry parameter set, and φ step can be derived equally well from both the encoder and the decoder.

[0038] Residual spherical coordinates (r res ,φ res ,θ res ) can be encoded into bitstream B.

[0039] Residual spherical coordinates (r res ,φ res ,θ res ) is the quantized residual spherical coordinate Q(r res,φ res ,θ res ) can be quantized (Q) into the quantized residual spherical coordinates Q(r res ,φ res ,θ res ) can be encoded into bitstream B.

[0040] For each node in the prediction tree, φ step The prediction index n and number m are signaled in the bitstream B, and the cardinal direction step size has a constant fixed-point precision and is shared by all nodes of the same prediction tree.

[0041] The prediction index n refers to the predictor selected from the candidate predictor list.

[0042] The candidate predictor PR0 is (r min ,φ0,θ0), where r min is the minimum radius value (provided in the geometric parameter set), and if the current node (current point P) has no parent node, φ0 and θ0 are equal to 0 or equal to the azimuth and elevation angles of the point relative to the parent node.

[0043] Another candidate predictor PR1 may be equal to (r0,φ0,θ0), where r0, φ0 and θ0 are the radius, azimuth and elevation angles, respectively, of the point relative to the parent node of the current node.

[0044] Another candidate predictor PR2 may be equal to the radius, azimuth and elevation angles (r0,φ0,θ0) of the point associated with the parent node of the current node and the radius, azimuth and elevation angles (r1,φ1,θ1) of the point associated with the grandparent node, and performs linear prediction on the radius, azimuth and elevation angles.

[0045] For example, PR2 = 2*(r0,φ0,θ0)-(r1,φ1,θ1)

[0046] Another candidate predictor PR3 may be equal to the radius, azimuth and elevation angles (r0,φ0,θ0) of the points associated with the parent node of the current node, the radius, azimuth and elevation angles (r1,φ1,θ1) of the points associated with the grandparent node, and the radius, azimuth and elevation angles (r2,φ2,θ2) of the points associated with the great-grandparent node, and performs linear prediction on the radius, azimuth and elevation angles.

[0047] For example, PR3 = (r0,φ0,θ0) + (r1,φ1,θ1) - (r2,φ2,θ2)

[0048] The predicted Cartesian coordinates (x pred ,y pred ,z pred ) is the decoded spherical coordinate (r dec ,φ dec ,θ dec ) can be obtained by performing an inverse transform on (x pred ,y pred ,z pred )=A2C(r dec ,φ dec ,θ dec ) (3) Here, the spherical coordinates decoded by the decoder (r dec ,φ dec ,θ dec ) is given by the following formula: (r dec ,φ dec ,θ dec )=(r res,dec ,φ res,dec ,θ res,dec )+(r pred ,φ pred ,θ pred )=(r res,dec ,φ res,dec ,θ res,dec )+(r n ,φ n ,θ n )+(0,m*φ step ,0) (4) Here, (r res,dec ,φ res,dec ,θ res,dec ) are the residual spherical coordinates decoded by the decoder.

[0049] The decoded residual spherical coordinates (r res,dec ,φ res,dec ,θ res,dec ) is the quantized residual spherical coordinate Q(r dec ,φ res ,θ res ) is the result of inverse quantization (IQ).

[0050] In G-PCC, the residual spherical coordinates are not quantized, and the decoded spherical coordinates (r res,dec ,φ res,dec ,θ res,dec ) is the residual spherical coordinate (r res ,φ res ,θ res ) is equal to the decoded spherical coordinate (r dec ,φ dec ,θ dec ) is equal to the spherical coordinates (r,φ,θ).

[0051] The decoded spherical coordinates (r dec ,φ dec ,θ dec ) The inverse transform of is given by r=r dec *Δr x pred =round(r*cos(φ dec *Δφ) y pred =round(r*sin(φ dec *Δφ) z pred =round(tan(θ dec )*r) Here, sin() and cos() are the sine and cosine functions. These two functions can be approximated using fixed-point precision. dec) can be stored as fixed-point precision values. Hence, no floating-point arithmetic is used in the decoder. Avoiding floating-point arithmetic is a strong requirement to simplify the hardware implementation of the codec.

[0052] The origin and the predicted Cartesian coordinate (x pred ,y pred ,z pred) the residual Cartesian coordinates (x res ,y res ,z res ) is given by the following formula: (x res ,y res ,z res )=(x,y,z)-(x pred ,y pred ,z pred ) Residual Cartesian coordinates (x res ,y res ,z res ) is quantized (Q) and the quantized residual Cartesian coordinates Q(x res ,y res ,z res ) is encoded into the bitstream.

[0053] The residual Cartesian coordinates may be lossless encoded if the x, y, z quantization step size is equal to the origin precision (usually 1), or it may be lossy encoded if the quantization step size is greater than the origin precision (usually quantization step size > 1).

[0054] The Cartesian coordinates (x dec ,y dec ,z dec ) is given by the following formula: (x dec ,y dec ,z dec )=(x pred ,y pred ,z pred )+IQ(Q(x res ,y res ,z res )) (5) Here, IQ(Q(x res ,y res ,z res )) represents the dequantized residual Cartesian coordinates.

[0055] The decoded Cartesian coordinates (x dec ,y dec ,z dec ) can be used by the encoder, for example, to sort (decode) the points before attribute encoding.

[0056] FIG. 6 shows a point cloud decoder that is similar to the prediction tree decoder based on the G-PCC prediction tree.

[0057] For each node in the prediction tree, we access the prediction index n and the number m from the bit stream B and use the cardinal direction step size φ step Alternatively, the number of detections per turn NP is accessed from the bit stream B (eg, from a parameter set) and is shared by all nodes of the same prediction tree.

[0058] The decoded residual spherical coordinates (r res,dec ,φ res,dec ,θ res,dec ) is the residual spherical coordinate (r res ,φ res ,θ res ) can be obtained.

[0059] From the bitstream B, the quantized residual spherical coordinates Q(r res ,φ res ,θ res ) can be decoded. The quantized residual spherical coordinates Q(r res ,φ res ,θ res ) is inversely quantized to obtain the decoded residual spherical coordinates (r res,dec ,φ res,dec ,θ res,dec ) is obtained.

[0060] The decoded spherical coordinates (r dec, φ dec ,θ dec ) is the decoded residual spherical coordinate (r res,dec ,φ res,dec ,θ res,dec ) and the predicted spherical coordinates (r pred ,φ pred ,θ pred ) is obtained by adding

[0061] The predicted Cartesian coordinates (x pred ,ypred ,z pred ) is the decoded spherical coordinate (r dec ,φ dec ,θ dec ) can be obtained by performing an inverse transform on

[0062] The quantized residual Cartesian coordinates Q(x res ,y res ,z res ) is decoded and dequantized to obtain the dequantized Cartesian coordinates IQ(Q(x res ,y res ,z res )) to obtain the decoded Cartesian coordinates (x dec ,y dec ,z dec ) is given by equation (5).

[0063] In G-PCC, equations (1) and (4) are used to predict the azimuth angle φ and to decode the azimuth angle φ dec and equation (5) is used to compound the Cartesian coordinates of the point.

[0064] Then, if the radius is small enough (i.e., when the point is close enough to the LiDAR sensor), a different “m” (e.g., m+1 or m-1) can be used in equations (1) and (4) and will produce the same (quantized) Cartesian residual value.

[0065] Figure 7 illustrates the defect called G-PCC. In the example in Figure 7, the points of the decoded point cloud (black circles) belong to rectangles in xy Cartesian space. These rectangles correspond to regular sampling of the x and y axes in Cartesian space. In the case of lossless compression, the size of the rectangles is determined by the precision with which the point cloud is input, or in the case of lossy compression, roughly by the quantization step size. The angle φ stepThe angular sector area with represents the area covered by the sensor of the spin sensor head 10 during the two acquisitions. Here, the point belongs to a square intersecting two laser beams b1 and b2 corresponding to the orientations of the two sensors and is used for two successive detections / acquisitions performed at the same elevation angle. This results in the square being covered by three angular sector areas s0, s1 and s2. Then, to calculate the predicted azimuth angle (equation (1) or (4)), we should now choose "m" between two values ​​m1 (associated with laser beam b1) and m2 (associated with laser beam b2). There is the possibility to code several different m values ​​(here 2, m1 and m2) for the same point of the point cloud, and φ is chosen so that a single laser beam passes through the square to which the point belongs. step This can lead to a suboptimal coding of a number m (e.g. m1) compared to another coding of a number m obtained if φ is sufficiently high. Therefore, the cardinal azimuth step width φ step The angular precision obtained using is too high compared to the output Cartesian precision. Therefore, it is possible to code several different numbers indicating suboptimal coding methods and improving compression.

[0066] To improve G-PCC, it is necessary to perform better coding for cardinal direction step widths of several meters. Summary of the Invention [Problem to be solved by the invention]

[0067] The following section presents a simplified summary of at least one example embodiment in order to provide a basic understanding of some aspects of the present application. This summary is not a detailed description of the example embodiment. It is not intended to identify key or critical elements of the embodiment. The following summary is merely intended to present some aspects of at least one example embodiment in a simplified form as a prelude to the more detailed description provided elsewhere in this specification. [Means for solving the problem]

[0068] According to a first aspect of the present application, there is provided a method for encoding a point cloud into a bitstream of encoded point cloud data representing a physical object, where each point of the point cloud is associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point. The method includes the steps of obtaining a scaled basic orientation step width associated with a point of the point cloud, where if the second data is strictly lower than a threshold, the scaled basic orientation step width is equal to the first data and the first data is greater than the basic orientation step width, and in other cases the scaled basic orientation step width is equal to the basic orientation step width, the basic orientation step width being derived from a frequency and a rotation speed of the point cloud captured by the spin sensor head, and the second data is determined by a decoded radius of the point obtained by encoding and decoding a radius associated with the point; encoding into a bitstream an azimuth angle of the point, a prediction of the azimuth angle, and a number of scaled basic orientation step widths obtained from the scaled basic orientation step width; and encoding into the bitstream a residual azimuth angle of the point between the azimuth angle of the point and the predicted azimuth angle derived from the number of scaled basic orientation step widths and the scaled basic orientation step width.

[0069] According to a second aspect of the present application, there is provided a method for decoding a point cloud from a bitstream of encoded point cloud data representing a physical object, where each point of the point cloud is associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point. The method includes the steps of decoding a base orientation step size from the bit stream; obtaining a decoded radius of a point in the point cloud from a residual radius decoded from the bit stream; obtaining a scaled base orientation step size associated with a point of the point cloud, where if a second data of a decoded radius determined by the point is strictly lower than a threshold value, the scaled base orientation step size is equal to the first data, and the first data is greater than the base orientation step size, and in other cases, the scaled base orientation step size is equal to the base orientation step size; decoding a number of scaled base orientation step sizes from the bit stream; and decoding a decoded residual azimuth angle from the bit stream; obtaining a decoded azimuth angle from the sum-decoded residual azimuth angle and a predicted azimuth angle derived from the number of scaled base orientation step sizes and the scaled base orientation step size.

[0070] In one exemplary embodiment, the first data depends on a decoding radius.

[0071] In one exemplary embodiment, the first data is inversely proportional to the product of the decoding radius and one or more scaling factors.

[0072] In one exemplary embodiment, the second data is a decoding radius (r dec ).

[0073] In one exemplary embodiment, second data is obtained by applying a monotonic function to the decoded radius, and the second data is compared to a second threshold obtained by applying the same monotonic function to the threshold.

[0074] In one exemplary embodiment, the monotonic function is defined as a function that provides integer bounds on the residual azimuth angle.

[0075] In one exemplary embodiment, the first data is 2π / (r dec *α*ΔIφ), where r dec is the decoding radius, α is a scaling factor equal to or greater than 1, and ΔIφ corresponds to the internal accuracy of the azimuth angle.

[0076] In one exemplary embodiment, the first data is a repeated refinement of the approximation.

[0077] In one exemplary embodiment, the approximation is 2π / (r dec This is obtained by finding the largest power of two for the cardinal direction step size that is lower than α*ΔIφ.

[0078] According to a third aspect of the present application, there is provided an apparatus for encoding a point cloud into a bitstream of encoded point cloud data representing a physical object, the apparatus comprising one or more processors, the one or more processors configured to perform a method according to the first aspect of the present application.

[0079] According to a fourth aspect of the present application, there is provided an apparatus for decoding points of a point cloud representing a physical object from a bitstream, the apparatus comprising one or more processors, the one or more processors configured to perform the method of the second aspect of the present application.

[0080] 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, instruct the one or more processors to perform the method of the first aspect of the present application.

[0081] According to a sixth aspect of the present application there is provided a computer program product comprising instructions, which when executed by one or more processors, instruct the one or more processors to perform the method of the second aspect of the present application.

[0082] According to a seventh aspect of the present application there is provided a non-transitory storage medium, the non-transitory storage medium carrying instructions for executing program code of the method of the second aspect of the present application.

[0083] At least one specific feature of an exemplary embodiment and at least one other object, advantage, feature and application of said exemplary embodiment will become apparent from the following description of the example taken in conjunction with the drawings. [Brief description of the drawings]

[0084] Now, by way of example, drawings of exemplary embodiments of the present application are presented, in which: [Figure 1] FIG. 1 is a side view of a sensor head and some parameters according to the prior art. [Diagram 2] FIG. 1 is a top view of a sensor head and some parameters according to the prior art. [Diagram 3] 2 is a regular distribution of data captured by a spin sensor head according to the prior art. [Figure 4] 1 is a representation of a point in 3D space according to the prior art. [Diagram 5] A point cloud encoder such as a prior art G-PCC prediction tree based encoder. [Figure 6] 1 is a point cloud decoder such as a decoder based on a G-PCC prediction tree according to the prior art. [Figure 7] This is a drawback of the G-PCC according to the prior art. [Figure 8] 1 is a block diagram of steps of a method 100 for encoding a point cloud representing a physical object according to at least one exemplary embodiment. [Figure 9] 2 is a block diagram of steps of a method 200 for decoding a point cloud representing a physical object according to at least one exemplary embodiment. [Figure 10] 3 is an example of a method 300 for determining an approximation of a scaled cardinal orientation step size according to at least one exemplary embodiment. [Figure 11]4 is an illustration of a method 400 for determining an approximation of a scaled cardinal direction step size according to at least one exemplary embodiment. [Figure 12] FIG. 1 is an exemplary schematic block diagram of a system for implementing aspects and exemplary embodiments.

[0085] In different drawings, like numbers may be used to represent like components. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0086] At least one of the exemplary embodiments will be described below with reference to the drawings, in which at least one example of the exemplary embodiments is shown. However, the exemplary embodiments may be embodied in many alternative forms and should not be construed as being limited to the examples described herein. Thus, it should be understood that the exemplary embodiments should not be limited to the particular forms disclosed. Rather, the present disclosure is intended to cover all modifications, equivalents and alternative solutions falling within the spirit and scope of the present application.

[0087] It should be understood that when a drawing is presented in flow chart form, a corresponding apparatus block diagram is also provided. Similarly, it should be understood that when a drawing is presented in block diagram form, a corresponding method / process flow is also provided.

[0088] At least one of these aspects relates generally to point cloud encoding and decoding, and at least one other aspect relates generally to transmission of the generated or encoded bitstream.

[0089] And, the present aspects are not limited to MPEG standards such as MPEG-I Parts 5 or 9 related to point cloud compression, but are applicable to other standards and recommendations, including pre-existing, yet to be developed, and extensions of any such standards and recommendations, including MPEG-I Parts 5 and 9. Unless otherwise indicated or technically excluded, the aspects described herein may be used alone or in combination.

[0090] The present invention relates to the field of encoding and decoding technology, and aims to provide a technical solution for encoding / decoding point cloud data. Because a point cloud is a collection of large amounts of data, a large amount of memory is consumed to store the point cloud, and if the point cloud is not compressed, the point cloud cannot be directly transmitted at the network layer, so compression of the point cloud is required. Therefore, with the increasing use of point clouds in autonomous navigation, patrol inspection, geographic information services, cultural heritage / building protection, 3D immersive communication and interaction, etc., the present invention can be used in many application scenarios.

[0091] The encoding / decoding method specifically relates to improving the compression performance of point clouds by encoding / decoding point cloud data based on scaled azimuth step sizes of a dynamic list.

[0092] The present invention relates to a method for encoding / decoding a point cloud into / from an encoded point cloud data bitstream representing a physical object, where each point of the point cloud is associated with spherical coordinates representing an azimuth angle responsive to the capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to the distance between the point and a reference point.

[0093] The method includes scaling a base azimuth step size used to calculate a predicted azimuth angle of a point of the point cloud from a decoding radius of said point, whereby the azimuth step size is dynamically scaled and therefore depends on the radius of the point of the point cloud.

[0094] The radius of the point is too small and the cardinal direction step width φ step If m cannot be efficiently used, multiple numbers m can be chosen, as shown in FIG. 7 above. However, scaling the base azimuth step size by a value greater than 1 reduces or eliminates the use of unnecessary extra number of base azimuth step sizes coded for a point, since the number of angular sector areas covering all squares to which all points with the same radius belong is statistically reduced, since on average only a single (or few) angular sector areas cover the square to which the point belongs (if the proportionality factor is appropriately selected). By avoiding (or at least reducing) the coding of unnecessary extra number of base azimuth step sizes, the effect of such scaling is to reduce the average number m (averaged over all coding points) to be coded, and implicitly reduce the average cost (number of bits averaged over all coding points) of coding the number m of base azimuth step sizes.

[0095] FIG. 8 is a block diagram of steps of a method 100 for encoding a point cloud representing a physical object, in accordance with at least one example embodiment.

[0096] In step 110, the cardinal direction step width φ step is given by equation (2).

[0097] In step 120, the decoding radius r of the points in the point cloud is calculated according to equation (4). dec can be obtained. r dec =r res,dec +r n (6) where r n is the predictor PR n The predicted radius is given by

[0098] In step 130, the decoding radius r dec If the second data D2 determined by is strictly lower than the threshold TH, the scaled cardinal direction step width S(φstep ,r dec ) is equal to the first data D1, which is greater than the cardinal direction step width, otherwise the scaled cardinal direction step width S(φ step ,r dec ) is the cardinal direction step width φ step is equal to.

[0099] In step 140, the number m of scaled cardinal direction step sizes is s is coded in the bitstream B. The azimuth angle of the point, φ, and the prediction of the azimuth angle, φ n and the scaled cardinal direction step size S(φ step ,r dec ) a few meters away s get. s=round((φ-φ n ) / S(φ step ,r dec ))

[0100] In step 150, the scaled cardinal direction step size S(φ step ,r dec ) and several meters s From the predicted azimuth angle φ pred Derive: φ pred =φ n +m s *S(φ step ,r dec ) (7)

[0101] In step 160, the residual azimuth angle φ res is coded in the bitstream B. The residual azimuth angle φ res is the azimuth angle of the point φ and the predicted azimuth angle φ pred It is possible to calculate between φ res =φ-φ pred =φ-φ n -m s *S(φ step ,r dec ) (8)

[0102] FIG. 9 is a block diagram of steps of a method 200 for decoding a point cloud representing a physical object, in accordance with at least one example embodiment.

[0103] In step 210, the basic azimuth step width φstep or 1 head Number of detections per turn NP (a number of probing per head turn NP) can be decoded from bitstream B, for example from the geometry parameter set.

[0104] In step 220, the decoded residual radius r res,dec is decoded from bitstream B. The decoding radius r dec can be obtained by equation (6).

[0105] In step 130, the scaled cardinal direction step width (S(φ step ,r dec )) to get the

[0106] In step 230, the number m of scaled cardinal direction step widths is extracted from the bit stream B. s Decrypt the

[0107] In step 150, the predicted azimuth angle φ from equation (7) is pred Derive:

[0108] In step 240, the decoded residual azimuth angle φ res,dec is decoded from bitstream B.

[0109] In step 250, the decoded residual azimuth angle φ res,dec and the predicted azimuth angle φ pred From the decoded azimuth angle φ dec Get the. φ dec =φ res,dec +φ pred =φ res,dec +φ n +m s *S(φ step,r dec ) (9)

[0110] In one exemplary embodiment, the present invention is applicable to a G-PCC prediction solution given by equation (1) or (4), where the azimuth angle φ associated with the points of the point cloud is adaptively quantized, as described in European Patent Application No. EP20306674.

[0111] As explained in Fig. 5 and Fig. 6, Q(r res ,φ res ,θ res ) is (r res ,Qφ res ,θ res ), where r res is the residual radius, and Qφ res is the adaptively quantized residual azimuth angle, as described below, and θ res is the unquantized elevation (index) residual.

[0112] On the encoding side, the residual radius r res and obtain the decoding radius r from equation (4). dec Get the.

[0113] The residual azimuth angle φ obtained from equation (1) res was adaptively quantized by the following formula: Qφ res =Q φ (φ res ,r dec )=round(φ res / Δφ(r dec ))(10)

[0114] Here, Q φ is the quantization step width Δφ(r dec ) is an adaptive quantizer that uses Δφ(r dec )=Δφ arc / r dec , (11) Here, Δφ arcis the quantization step size of the arc.

[0115] The codec uses fixed-point precision arithmetic, and the internal precision ΔIφ used in the codec's azimuth angle representation is ΔIφ=2π / 2 N This gives the quantization step width Δφ of the arc. arc is 2π / (x*ΔIφ)=2 N / x, where, for example, x=8.

[0116] Inverse quantized residual azimuth angle IQφ res Qφ is calculated according to the following formula: res is obtained by inverse quantizing IQφ res =IQ φ (Qφ res ,r dec )=Qφ res *Δφ(r dec ) (12) Here, IQ φ is the decoding radius r dec The adaptive inverse quantizer is based on

[0117] Decoded azimuth angle φ dec It is given by the following formula: φ dec =IQφ res +φ n +m s *S(φ step ,r dec ) (13) or given by the following formula: φ dec =Qφ res *Δφ(r dec )+φ n +m s *S(φ step ,r dec ) =Qφ res *Δφ arc / r 十進法 +φ n +m s *S(φ step ,r dec ) (14)

[0118] Quantized residual azimuth angle Qφ res is encoded into bitstream B.

[0119] In one exemplary embodiment, a residual azimuth angle φ between the azimuth angle of a point of the point cloud and the predicted azimuth angle is res Encoding / decoding can be improved using the defined property given by the following equation: |φ res |≦B Here, |φ res | is the residual azimuth angle φ res and is bounded by an integer boundary B, which is given by: B=Q φ (φ step / 2,r dec ) =round(r dec *(φ step / 2) / Δφ arc ))=round(r dec *φ step / (2*Δφ arc )) (15) Here, Δφ arc =2π / (x*ΔIφ)=2 N / x, for example, x=8.

[0120] In one exemplary first embodiment of step 130, the first data D1 is decoded with a decoding radius r dec and the second data D2 is determined by the decoding radius r dec It is.

[0121] In the first embodiment, the decoding radius r dec (D2) is the scaled cardinal direction step size S(φ step ,r dec ) is equal to the first data D1, and the first data D1 is the basic azimuth step width φ step In other cases, the scaled cardinal direction step size S(φ step ,r dec ) is the cardinal direction step width φ step is equal to.

[0122] In the variant, the first data D1 is inversely proportional to the product of the decoding radius and a scaling factor α of 1 or more.

[0123] For example, D1 = 2π / (r dec *α*ΔIφ) (16)

[0124] The decoding radius r dec is sufficiently small (i.e., r dec *α is smaller than the number of detections per turn NP, or equivalently r dec < NP / α), the scaled basic azimuth step width S(φ step , r dec ) is set to be larger than the basic azimuth step width φ step . Then, for the "small" decoding radius, the use of an unnecessary extra number of basic azimuth step widths is reduced, and the coding cost (i.e., the number of bits required for coding) of the number m s is reduced. The optimal threshold to use is TH = NP / α.

[0125] In the variant, when the internal accuracy is ΔIφ = 2π / 2 N , the residual azimuth angle is adaptively quantized by equation (10), where Δφ arc = 2 N / x and α are set to be equal to x, and equation (16) can be rewritten as follows. D1 = 2 N / (r dec *α) (17)

[0126] In the variant, the threshold TH is equal to the threshold Th0 given by the following formula. Th0 = Δφ arc / φ step (18)

[0127] When the residual azimuth angle is bounded by the integer boundary B, the following threshold Th0 can be obtained. When B = 0, preferably S(φ step , r dec ) = D1 is used, and when B > 0, preferably S(φstep ,r dec )=φ step Then, by equation (15), since the boundary BB is equal to a positive number rounded to an integer value, if the following equality inequality is satisfied, then the boundary B is equal to 0, i.e., the boundary B is strictly less than 1 (B<1). B=0⇔B<1⇔Q φ (φ step / 2,r dec )<1⇔r dec *(φ step / 2) / (Δφ arc )+0.5<1

[0128] Then, by solving the following equation, we derive the threshold value Th0 based on the upper limit of the inequality that appears when B = 1. Q φ (φ step / 2,Th0)=1, Therefore, we get the following: Th 0= (1-0.5)*Δφ arc *2 / φ step = Δφ arc / φ step (19)

[0129] The threshold Th0 given by equation (18) may be applicable to a variant in which the residual azimuth angle is adaptively quantized according to equation (10) or adaptively quantized according to equation (10), or may be applicable to a variant in which the residual azimuth angle is bounded by an integer boundary B or is not bounded by an integer boundary B.

[0130] In the transformation, the internal precision is ΔIφ=2π / 2 N If , the residual azimuth angle is adaptively quantized according to equation (10), where Δφ arc =2 N / x and α is set equal to x, so that the threshold Th0 is given by: Th0=2 N / (α*φ step ) (20)

[0131] In a second exemplary embodiment of step 130, the decoding radius rdec and compares the second data D2 with a threshold TH obtained by applying the same monotonic function m(.) to the threshold Th0. JPEG0007660705000001.jpg11170

[0132] The monotonic function m(.) is a monotonically increasing function, and therefore, when the second data D2 is equal to or greater than the threshold TH, the scaled cardinal direction step width S(φ step ,r dec ) is the cardinal direction step width φ step If the second data D2 is strictly lower than the threshold TH, the scaled cardinal direction step width S(φ step ,r dec ) is equal to the first data D1.

[0133] The use of a monotonically increasing or decreasing function is equivalent, and the scope of the present invention extends to monotonically increasing or decreasing functions m(.).

[0134] For example, if a function m(.) is a monotonically increasing function, then to continue using monotonically increasing functions, an equivalent monotonically increasing function m'(x) can be constructed from m(x), e.g., m'(x)=-m(x).

[0135] As another example, if the function m(.) is directly a monotonically decreasing function, it is possible to obtain a method equivalent to the method described in conjunction with the drawings. For example, if the second data D2 is strictly lower than the threshold TH, the scaled cardinal direction step width S(φ step ,r dec ) is the cardinal direction step width φ step If the second data D2 is equal to or greater than the threshold TH, the scaled basic orientation step width S(φ step ,r dec ) is equal to the first D1.

[0136] In the variant, the monotonic function m(.) is scaled according to a scaling factor α greater than or equal to 1.

[0137] Then, the second data D2 and the threshold value TH are given by the following equations. JPEG0007660705000002.jpg8170

[0138] In the transformation, the internal precision is ΔIφ=2π / 2 N If , the residual azimuth angle is adaptively quantized according to equation (10) and Δφ arc =2 N / x, and α is set equal to x, then the second data D2 and the threshold TH are given by: JPEG0007660705000003.jpg11170

[0139] In a variant, a monotonic function m(.) is defined to provide a function of the integer bound B in equation (15).

[0140] Therefore, the second data D2 and the threshold value TH are given by the following equation. JPEG0007660705000004.jpg10170

[0141] In this variant, since the integer boundary B (Equation 15) is an integer, the condition B>0 is equivalent to D2 ≥ TH (i.e., D2 ≥ 1), and the condition B=0 is equivalent to D2 < 1. When B=0 (D2 < 1), the scaled cardinal direction step size S(φ step ,r dec ) is the cardinal direction step size φ step The larger first data D1 (Equation 16 or 17) is equal to the scaled cardinal direction step width S (φ step ,r dec ) is the cardinal direction step width φ in other cases step is equal to.

[0142] The integer boundary B in equation (15) is the residual azimuth angle φ resIt is clear that when the second data D2 is used to define the encoding of the point cloud, it is preferable to use a variant of equation (23), since the second data D2 is equal to the integer boundary B already calculated for each point, and the threshold TH is always 1. In other cases, when the integer boundary B is not used to define the residual azimuth, the first embodiment or a variant thereof or one of equations 21-22 is preferable, since the threshold TH needs to be calculated only once for each point cloud, and the second data D2 in equation (23) requires an integer division for each point of the point cloud.

[0143] If the second data D2 (integer boundary B) is given by equation (23), the integer division can be calculated as a bitwise shift operation. For example, the internal precision of the codec is azimuth angle ΔIφ=2π / 2 N and Δφ arc =2 N When used for a fixed-point representation of / 8, the integer boundary B(D2) is given by: D2=B=round(r dec *φ step / (2*Δφ arc ))=round(r dec *φ step / (2 N-3 )) =(r dec *φ step +(1≪(N-2)))≫(N-3) (24)

[0144] Here, the result of (a)<<(b) is to bitwise shift (a) left by (b) (i.e., by adding 2 b The result of (a)>>(b) is a bitwise right-shift of (a) by (b) (i.e., multiplying (a) by 2 b (The result of integer division by dividing by .)

[0145] Equation (16) involves an integer division for each point in the point cloud. Division is costly in terms of hardware design, execution time length, and / or power consumption and should be avoided if possible.

[0146] There are many possibilities for approximate integer division. For example, the division u / v can be approximated by a bitwise shift operation to the right of the number of bits of u equal to the bit order NV taken by v (i.e. NV=floor(log2(v)+1)). In this case u / v approximates u / 2NV. Another way is to use the Newton-Raphson iterative algorithm (https: / / en.wikipedia.org / wiki / Division_algorithm) for a limited number of iterations. Or, as already used in G-PCC, one can use a lookup-based approximation with fixed-point precision of 1 / v and divide u by the approximate 1 / v, then round the fixed-point result to the appropriate fixed-point (or integer) precision.

[0147] Compared to true integer division, the approximation introduces a small error in the result, so equation (16) becomes: D1 app =divApprox(2 N ,(r dec *α))=2 N / (r dec *α)+ε(r dec ) (twenty five)

[0148] where divApprox(u,v) is the approximation function for integer division u / v, and +ε(r dec ) is the error introduced by the division approximation.

[0149] For example, divApprox(2 N ,(r dec *α))=2N-M, where M=floor(log2(r dec *α)+1) is r dec * The number of bits occupied by α.

[0150] Approximation error ε(r dec ) compared to using D1 (Eq. 16), app Coding loss is introduced when using

[0151] Three different cases occur. D1 app >D1, that is, ε(r dec ) > 0 is

[0152] After that, since D1 app is too high, the number m of scaled basic azimuth step widths s becomes smaller, so the bit rate decreases slightly, but more distortion is introduced by the predicted (x pred , y pred ) coordinates.

[0153] D1 app <D1, that is, ε(r dec ) < 0.

[0154] After that, since D1 app is too small, the number m of scaled basic azimuth step widths s may increase slightly, and thus the encoding cost also increases.

[0155] D1 app = D1, and thus the optimal efficiency is obtained.

[0156] In the experiment, for the same absolute value of the error ε(r dec ), it is generally observed that the first case is more important than the second case. Therefore, it is preferable to slightly increase the bit rate rather than introduce a prediction error into the (x pred , y pred ) coordinates. Thus, preferably, the first case is avoided.

[0157] In the transformation of Equation (16), the first data D1 (scaled basic azimuth step width S(φ step , r dec )) obtained by Equation (16) is subdivided by repeatedly increasing it and / or optionally repeatedly shrinking it.

[0158] FIG. 2 relates to at least one exemplary embodiment of a scaled basic azimuth step width S(φ step , rdec ) is determined.

[0159] Briefly, the method uses simple operations (bitwise shift operations, incremental batch comparisons) at each refinement step to refine the scaled basic azimuth angle step S(φ step ,r dec ) is subdivided iteratively.

[0160] As explained earlier, the decoding radius r dec If (D2) is greater than or equal to the threshold TH, the scaled cardinal direction step size S(φ step ,r dec ) is the cardinal direction step size φ step and set the decoding radius r dec If (D2) is strictly lower than the threshold TH (or the decoding radius r dec and the cardinal direction step width φ step In step 310, if the integer boundary B calculated from is 0, (2*π) / ((r dec *α*ΔIφ)) approximation, decoding radius r dec to the first cardinal direction step width φ step,0 For example, φ step,0 =divApprox(2 N ,r dec *α)

[0161] In step 320, the first cardinal direction step width φ step,0 and the decoding radius r dec Obtain the first integer boundary B0 value (Equation 15) from

[0162] Then, from index i=0, the integer boundary B i When is greater than zero, the index i is incremented by 1 (step 340), and the cardinal direction step size φ step,i-1 By decreasing by 1, the new basic direction step width φ step,i , i.e. φ step,i =φ step,i-1 -1 is obtained (step 350), and the cardinal direction step width φ step,iand the decoding radius r dec From (Eq. 15), we get the new integer boundary B i is obtained (step 360).

[0163] integer bounds Bi If is equal to 0, the first case above is resolved, and the scaled cardinal direction step size S(φ step ,r dec ) to φ step,i can be set equal to

[0164] In a modification, in order to simultaneously solve the second case above, the integer boundary B i If is equal to 0, the current cardinal direction step size φ step,i By increasing by 1, the new basic direction step width φ step,i+1 , i.e. φ step,i+1 =φ step,i +1 (step 370), and the cardinal direction step width φ step,i+1 and the decoding radius r dec From (Eq. 15), we get the new integer boundary B i Get +1 (step 380).

[0165] integer boundary B i If +1 is equal to 0, then φ step,i is still φ step,i+1 up to , which means that the index i is incremented by 1 (step 390).

[0166] Then, a new cardinal direction step size (step 370) is obtained and a new integer bound (step 380) is obtained.

[0167] integer boundary B i This process is repeated iteratively until +1 is not equal to zero (i.e., is greater than zero), and then the scaled cardinal direction step size S(φ step ,r dec ) with the current cardinal direction step size φ step,i Set it equal to

[0168] In a variant, the increment and / or decrement operation(s) may use dynamically determined increment (and / or decrement) step sizes.

[0169] For example, the increment is doubled after every iteration of the method.

[0170] FIG. 11 illustrates a scaled cardinal direction step size S(φ) in accordance with at least one example embodiment. step ,r dec 4 illustrates another example of a method 400 for determining

[0171] As explained earlier, the decoding radius r dec If (D2) is greater than or equal to the threshold TH, the scaled cardinal direction step size S(φ step ,r dec ) with the cardinal direction step width φ step We set the decoding radius r equal to dec If (D2) is strictly lower than the threshold TH (or the decoding radius r dec and the cardinal direction step width φ step In step 410, the first cardinal direction step width φ step,0 , the cardinal direction step width φ step and the associated arc length φ arc,0 Set equal to (step 420). φ arc,0 =φ step,0 *r dec *α

[0172] Then, from index i=0, the arc length φ arc,i If is lower than the threshold Th1, the index i is incremented by 1 and the basic direction step width φ step,i-1 (Step 430) and the related arc length φ arc,i-1 (step 440) is multiplied by 2 (a bitwise left shift operation) to obtain the new cardinal direction step width φ step,i and the new associated arc length φ arc,i Get the. JPEG0007660705000005.jpg13170

[0173] Current arc length φ arc,i When the threshold value Th1 is reached, the scaled cardinal direction step size S(φ step ,r dec ) with the cardinal direction step width φ step,i can be set equal to

[0174] Typically, Th1=π / ΔIφ, so the method 400 for determining an approximation of the scaled cardinal direction step size is (2*π) / ((r dec *α*ΔIφ)) lower cardinal direction step width φ step The largest power of coefficient 2 (2 n ) (i.e., φ step *2 n <2*π / ((r dec *α*ΔIφ)) and φ step *2 n =φ step ≪n is the scaled cardinal direction step size S(φ step ,r dec ) is used as the division (2*π) / ((r dec *α*ΔIφ) (Equation 16).

[0175] As an example, using the variant shown in Figure 11, if Th1=π / ΔIφ, we always belong to the second or third case above, and in our experiments we retain the ~90% coding gain obtained when using true division. However, if we use Th1=π / ΔIφ but abs(2*Th1-2*φ arc,i ) <abs(2*Th1-φ arc,i ), the first case is also allowed, but we must accept the approximation error ε(r dec ) and only retains ~72% coding gain. As can be seen, the third case is preferably avoided.

[0176] The present encoding / decoding method is used for encoding / decoding point clouds, which can be used for various purposes, particularly related to encoding / decoding point cloud data based on a dynamically list-scaled azimuth angle step size, which improves the compression performance of the point cloud.

[0177] FIG. 12 illustrates an exemplary schematic block diagram of a system according to various aspects and exemplary embodiments.

[0178] System 500 may be implemented in one or more devices and may include the components described below. In various embodiments, system 500 may be configured to implement one or more aspects described herein.

[0179] Examples of devices that may comprise all or part of system 500 include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, connected vehicles and their associated processing systems, head mounted display devices (HMDs, see-through glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process output from a video decoder, pre-processors that provide input to a video encoder, web servers, set-top boxes, point clouds, any other device for processing video or images, or other communications devices. The elements of system 500 may be implemented individually or in combination in a single integrated circuit (IC), multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 500 may be distributed across multiple ICs and / or discrete components. In various embodiments, system 500 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.

[0180] The system 500 may include at least one processor 510, configured to execute instructions loaded therein to implement aspects described herein. The processor 510 may include embedded memory, input / output interfaces, and various other circuits known in the art. The system 500 may include at least one memory 520 (e.g., a volatile memory device and / or a non-volatile memory device). The system 500 may include a storage device 540, which may include non-volatile memory and / or volatile memory, and may include, but is not limited to, an electrically erasable programmable read-only memory (EEPROM), a read-only memory (ROM), a programmable read-only memory (PROM), a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), a flash memory, a disk drive, and / or an optical disk drive. As a non-limiting example, the storage device 540 may include an internal storage device, an attached storage device, and / or a network-accessible storage device.

[0181] The system 500 may include an encoder / decoder module 530 configured to, for example, process data to provide encoded / decoded point cloud geometry data, and the encoder / decoder module 530 may include its own processor and memory. The encoder / decoder module 530 may represent a module(s) that may be 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 530 may be implemented as a separate element of the system 500 or may be coupled into the processor 510 as a combination of hardware and software known by those skilled in the art.

[0182] Program code loaded into the processor 510 or the encoder / decoder 530 to perform aspects described herein can be stored in the storage device 540 and then loaded into the memory 520 and executed by the processor 510. According to various embodiments, while performing the processes described herein, one or more of the processor 510, the memory 520, the storage device 540, and the encoder / decoder module 530 can store one or more of various items. Such stored items can include, but are not limited to, point cloud frames, encoded / decoded geometry / attribute videos / images or portions of encoded / decoded geometry / attribute videos / images, bitstreams, matrices, variables, and equations, formulas, intermediate or final results of arithmetic and logical operations.

[0183] In some embodiments, memory within the processor 510 and / or the encoder / decoder module 530 can be used to store instructions and provide working memory for processes performed during encoding or decoding.

[0184] However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 510 or the encoder / decoder module 530) is used for one or more of these functions. The external memory may be the memory 520 and / or the storage device 540, such as dynamic volatile memory and / or non-volatile flash memory. In some embodiments, the external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, a fast external dynamic volatile memory, such as RAM, may be used as working memory for video encoding and decoding operations, such as HEVC (Efficient Video Coding), VVC (Versatile Video Coding), or MPEG-I Part 5 or Part 9 for MPEG-2 Part 2 (also known as ITU-T Recommendation H.262 and ISO / IEC 13818-2, also known as MPEG-2 Video).

[0185] As indicated by block 590, inputs to the elements of system 500 can be provided via various input devices, including, but not limited to, (i) an RF section capable of receiving RF signals transmitted wirelessly, for example, by a broadcast device, (ii) a composite input, (iii) a USB input, and / or (iv) an HDMI input.

[0186] In various embodiments, the input devices of block 590 have corresponding input processing elements associated therewith, as known in the art. For example, the RF section may be associated with the following necessary elements: (i) select the desired frequency (also called signal selection, or limiting the signal frequency band to within a frequency band), (ii) downconvert the selected signal, (iii) select (for example) the signal frequency band by limiting the frequency band again to a narrow frequency band, referred to in certain embodiments as a channel, (iv) demodulate the downconverted and frequency band limited signals, (v) perform debugging, and (vi) demultiplex to select the desired packet stream. The RF section of various embodiments may include one or more elements to perform these functions, such as a frequency selector, a signal selector, a frequency band limiter, a channel selector, a filter, a downconverter, a demodulator, a debugging device, and a demultiplexer. The RF section may include a tuner to perform each of these functions, including downconverting the received signal to a lower frequency (e.g., an intermediate frequency or a frequency near baseband) or to baseband.

[0187] 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. The RF section can then perform frequency selection by filtering, down-converting, and re-filtering to a desired frequency band.

[0188] Various embodiments may rearrange the order of these (and other) elements, eliminate some of these elements, and / or add other elements that perform similar or different functions.

[0189] Adding elements may be inserting elements between conventional elements, for example, inserting amplifiers and analog to digital converters. In various embodiments, the RF section includes an antenna.

[0190] Additionally, the USB and / or HDMI terminals may include corresponding interface processors, which are used to connect the system 500 to other electronic devices via USB and / or HDMI connections. Note that, when necessary, aspects of the input processing (e.g., Reed-Solomon debug) may be implemented, for example, in a separate input processing IC or in the processor 510. Similarly, when necessary, aspects of the USB or HDMI interface processing may be implemented, for example, in a separate interface IC or in the processor 510. The demodulated, debug, and demultiplexed streams may be provided to various processing elements, including, for example, the processor 510 and the encoder / decoder 530, which may operate in combination with memory and storage elements to process the data streams for display on an output device, when necessary.

[0191] 5. Providing the various elements of system 500 within a monolithic housing, within which a suitable connection arrangement 590 can be made, for example, via internal buses (including an I2C bus), wiring, and printed circuit boards as are known in the art, to connect and transmit data between the various elements.

[0192] System 500 may include a communication interface 550 such that it may communicate with other devices over a communication channel 900. Communication interface 550 may include, but is not limited to, a transceiver that transmits and receives data over communication channel 900. Communication interface 550 may include, but is not limited to, a modem or a network card, and communication channel 900 may be implemented, for example, within a wired and / or wireless medium.

[0193] In various embodiments, a Wi-Fi network, such as IEEE 802.11, may be used to stream data to the system 500. The Wi-Fi signal in these embodiments may be received by a communication channel 900 and communication interface 550 compatible with Wi-Fi communications. The communication channel 900 in these embodiments may typically be connected to an access point or router that provides access to external networks, including the Internet, to enable streaming applications and other over-the-top communications.

[0194] Other embodiments may provide stream data to the system 500 using a set-top box, which transmits the data via an HDMI connection in the input block 590.

[0195] Other embodiments may also use the RF of input block 590 to provide stream data to system 500 .

[0196] The stream data can be used as a form of signaling information for use by the system 500. The signaling information can include the bit stream B and / or the number of points in the point cloud and / or sensor configuration parameters (e.g., the cardinal azimuth step width φ associated with the sensor of the spin sensor head 10). step Or elevation angle θ k ) can be included.

[0197] It should be noted that various signaling possibilities are possible. For example, in various embodiments, one or more syntax elements, flags, etc. may be used to transmit signaling information to a corresponding decoder.

[0198] System 500 can provide output signals to a variety of output devices including display 500, speakers 700, and other peripherals 800. In various example embodiments, other peripherals 800 can include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices based on the output providing capabilities of system 500.

[0199] In various embodiments, control signals may be communicated between system 500 and display 600, speakers 700, or other peripherals 800 using, for example, AV.Link (Audio / Video Link), CEC (Consumer Electronics Control), or other communication protocol signaling that allows control between devices with or without user intervention.

[0200] The output devices are communicatively coupled to the system 500 by corresponding interfaces 560, 570 and 580 via dedicated connections.

[0201] Optionally, an output device can be connected to the system 500 using a communication channel 900 via the communication interface 550. The display 600 and the speakers 700 can be integrated into a single unit along with other components of the system 500 in an electronic device (e.g., a television).

[0202] In various embodiments, the display interface 560 can include a display driver, such as a timing controller (T Con) chip.

[0203] For example, if the RF portion of input 590 is part of a separate set-top box, display 600 and speakers 700 may be selectably separate from one or more of the other components. In various embodiments where display 600 and speakers 700 may be external components, output signals may be provided via dedicated output connections (including, for example, an HDMI port, a USB port, or a COMP output).

[0204] 1-12, various methods are described herein, each of which includes one or more steps or actions to achieve the described method. To the extent that the exact operation of the method does not require a specific order of steps or actions, the order and / or use of specific steps and / or actions can be modified or combined.

[0205] Some examples are described with respect to block diagrams and / or operational flow charts. Each block represents a circuit element, module, or portion of code, which includes one or more executable instructions for implementing a specified logical function(s). It should be understood that in other embodiments, the function(s) marked in the block may differ from the order shown. For example, depending on the functions involved, two blocks shown in succession may in fact be executed essentially simultaneously, or the blocks may be executed in the reverse order.

[0206] The embodiments and aspects described herein may be implemented in, for example, a method or process, an apparatus, a computer program, a data stream, a bit stream, or a signal. Even when discussed only in the context of a single type of embodiment (e.g., discussed only as a method), the discussed embodiment features may be implemented in other forms (e.g., an apparatus or a computer program).

[0207] 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. Processors further include communications devices.

[0208] Also, the method may be implemented with instructions executable by a processor, and such instructions (and / or data values ​​generated by the embodiment) may be stored in a computer-readable storage medium. The computer-readable storage medium may be in the form of a computer-readable program product having computer-readable program code embodied in one or more computer-readable media and executable by a computer embodied therein. Given the inherent ability to store information and provide retrieval of information, the computer-readable storage medium used herein may be considered as a non-transitory storage medium. The 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. Note that, although more specific examples are provided below to which the computer-readable storage medium of the present embodiment is applied, as can be easily understood by those skilled in the art, they are merely illustrative and not a detailed list: a portable computer floppy disk, a hard disk, a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any combination of the foregoing.

[0209] The instructions may form an application program tangibly embodied on a processor-readable medium.

[0210] For example, instructions may reside in hardware, firmware, software, or a combination. For example, instructions may be found in an operating system, an independent application, or a combination of both. A processor may thus be characterized as, for example, a device configured to execute a process, and a device having a processor-readable medium (e.g., a storage device) for executing instructions of the process. Also, in addition to or in lieu of instructions, a processor-readable medium may store data values ​​produced by an embodiment.

[0211] The device may be implemented in, for example, suitable hardware, software and firmware. Examples of such devices include personal computers, laptops, smartphones, tablets, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected home appliances, head mounted display devices (HMD, see-through glasses), projectors, "caves" (systems including multiple displays), servers, video encoders, video decoders, post-processors that process the output from a video decoder, pre-processors that provide input to a video encoder, web servers, set-top boxes, any other device for processing point clouds, videos or images, or other communications devices. It should be noted that the device may be mobile and may be mounted in a moving vehicle.

[0212] The computer software may be implemented by the processor 510, hardware, or a combination of hardware and software. As a non-limiting example, an embodiment may be implemented by one or more integrated circuits. The memory 520 may be of any type suitable for the technology environment and may be implemented using any suitable data storage technology, including, as non-limiting examples, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memories, and removable memories. The processor 510 may be of any type suitable for the technology environment and may include, as non-limiting examples, one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0213] It will be apparent to those skilled in the art that the embodiments can generate a signal formatted 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 formatted to carry a bit stream of the described embodiments. Such a signal can be formatted, for example, as an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or a baseband signal. Formatting can include, for example, encoding a 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 known, the signal can be transmitted over a variety of different wired or wireless links. The signal can be stored in a processor-readable medium.

[0214] The terms used herein are intended to describe particular embodiments and are not 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 specify the presence of, for example, stated features, integers, steps, operations, elements, and / or components, but cannot preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof. And, 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.

[0215] 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 include only the selection of the first listed option (A), or to include only the selection of the second listed option (B), or to include the selection of both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A and B," such language is intended to include only the selection of the first listed option (A), or to include only the selection of the second listed option (B), or to include only the selection of the third listed option (C), or to include only the selection of the first and second listed options (A and B), or to include only the selection of the first and third listed options (A and C), or to include only the selection of the second and third listed options (B and C), or to include all three options (A, B, and C). As will be apparent to one skilled in the art, this can be expanded to as many items as are listed.

[0216] In this application, various numerical values ​​may be used, and specific values ​​may be used for illustrative purposes, and the aspects described are not limited to these specific values.

[0217] It should be noted that terms such as first, second, etc. may be used to describe various elements in this specification, but these elements are not limited by these terms. These terms are used only to distinguish one element from another element. For example, a first element may be called a second element, and similarly, a second element may be called a first element, without departing from the teachings of this application. No order is implied between the first element and the second element.

[0218] References to "one exemplary embodiment" or "exemplary embodiment" or "one embodiment" or "embodiment" and other variations are often used to indicate that a particular feature, structure, characteristic, etc. (described in conjunction with the embodiment) may be included in at least one embodiment / embodiment. Thus, appearances of the terms "in one exemplary embodiment" or "in an exemplary embodiment" or "in one embodiment" or "in an embodiment" and any other variations appearing in various places throughout this application are not necessarily all referring to the same embodiment.

[0219] Similarly, the present specification often uses references to "according to an exemplary embodiment" or "in an exemplary embodiment" and other variations to indicate that a particular feature, structure, or characteristic (described in combination with an exemplary embodiment) may be included in at least one exemplary embodiment. Thus, the phrases "according to an exemplary embodiment" or "in an exemplary embodiment" appearing in various places in this application do not necessarily refer to the same exemplary embodiment, and separate or alternative exemplary embodiments are not necessarily mutually exclusive of other exemplary embodiments.

[0220] The reference numerals in the drawings appearing in the claims are for explanatory purposes only and do not limit the scope of the claims. Although there is no explicit description, the present embodiment / example and modified examples can be adopted in any combination or partial combination.

[0221] It will be appreciated that when the drawings are presented as flow charts, they also provide a block diagram of the corresponding apparatus. Similarly, when the drawings are presented as block diagrams, they also provide a flow chart of the corresponding method / process.

[0222] Although some of the drawings include arrows on paths to indicate the primary direction of communication, it is understood that communication may occur in the opposite direction to that depicted.

[0223] Various embodiments relate to decoding. As used herein, "decoding" may include, for example, all or part of a process performed on a received point cloud frame (which may include a received bitstream that performs encoding on 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, this type of process may include one or more of the processes typically performed by a decoder. In various embodiments, for example, this type of process may further include, optionally, a process performed by a decoder of various embodiments described herein.

[0224] As a further example, in one embodiment, "decoding" may refer to entropy decoding, in another embodiment, "decoding" may refer only to differential decoding, and in another embodiment, "decoding" may refer to a combination of entropy decoding and differential decoding. Depending on the context in which it is specifically described, it is clear and recognized that one skilled in the art can well understand whether the term "decoding process" refers specifically to a subset of operations or generally to a broader decoding process.

[0225] All of the various embodiments relate to encoding. Similar to the "decoding" discussion above, "encoding" as used herein may include all or part of a process that is performed, for example, on an input point cloud frame to generate an encoded bitstream. In various embodiments, this type of process includes one or more of the processes typically performed by an encoder. In various embodiments, this type of process includes, or alternatively includes, a process performed by an encoder in various embodiments described herein.

[0226] As a further example, in one embodiment, "encoding" may refer only to entropy encoding, in another embodiment, "encoding" may refer only to differential encoding, and in another embodiment, "encoding" may refer to a combination of differential and entropy encoding. Based on the limited context described, it is clear whether the term "decoding process" refers specifically to a subset of operations or generally to a broader decoding process, and is recognized as being well understood by those skilled in the art.

[0227] Also, reference has been made herein to "determining" various types of information. Determining the information may include, for example, one or more of estimating the information, calculating the information, predicting the information, or retrieving the information from a memory.

[0228] Also, reference has been made herein to "accessing" various types of information, which may include one or more of receiving information, retrieving information (e.g., from a memory or a bitstream), storing information, moving information, copying information, calculating information, determining information, predicting information, or inferring information.

[0229] Also, reference has been made to "receiving" various types of information. Like "access," receiving is a broad term. Receiving information can include, for example, one or more of accessing information or retrieving information (e.g., from a memory or a bitstream). Also, in one or another form, 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."

[0230] And, as used herein, the term "signal" specifically refers to a corresponding decoder and indicates something, etc. For example, in some embodiments, an encoder may send a signal to communicate certain information, such as the number of points in a point cloud or a sensor configuration parameter (e.g., the cardinal orientation step width φ associated with sensor k). step Or elevation angle θ k ). This scheme allows the encoder and decoder to use the same parameters in the embodiments. Thus, for example, the encoder can transmit a specific parameter to the decoder (explicit signaling), which allows the decoder to use the same specific parameter. Conversely, if the decoder has a specific parameter and other parameters, the signaling is used to allow the decoder to know and select the specific parameter without the need for transmission (implicit signaling). By avoiding the transmission of any actual function, the embodiments achieve bit savings. Note that the signaling can be accomplished in many ways. For example, in various embodiments, one or more syntax elements, flags, etc. are used to transmit a signal to inform the corresponding decoder of information. Although the verb form of "signal" was mentioned in the previous paragraph, the term "signal" can also be used as a noun in this specification.

[0231] Several embodiments have been described above. However, it should be understood that various modifications are possible. For example, elements of different embodiments can be combined, supplemented, modified, or removed to produce other embodiments. Additionally, one of ordinary skill in the art will appreciate that the disclosed structures and processes can be substituted with other structures and processes, which result in embodiments that perform at least essentially the same function(s) in at least essentially the same way(s) and thereby achieve at least essentially the same result(s) as the disclosed embodiments. Accordingly, the present application contemplates these and other embodiments.

Claims

1. A method of processing point cloud data, comprising: encoding a point cloud into a bitstream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point, the method comprising: obtaining (130) a scaled basic orientation step size (S(φstep,rdec)) associated with a point of the point cloud, where if the second data (D2) is lower than a threshold, the scaled basic orientation step size (S(φstep,rdec)) is greater than the basic orientation step size (φstep), and if the second data (D2) is equal to or greater than the threshold, the scaled basic orientation step size (S(φstep,rdec)) is equal to the basic orientation step size (φstep), where the basic orientation step size (φstep) is derived from the frequency and rotation speed at which a spin sensor head captures the point cloud, and the second data (D2) is a decoded radius (rdec) of the point obtained by encoding and decoding (120) a radius associated with the point; encoding (140) into the bitstream the azimuth angle of the point, the prediction of the azimuth angle, and the number of scaled base orientation step sizes (ms) obtained from the scaled base orientation step size; and encoding (160) into the bitstream a residual azimuth angle of the point between the azimuth angle of the point and a predicted azimuth angle derived (150) from a number of scaled cardinal azimuth step sizes (ms) and the scaled cardinal azimuth step size (S(φstep,rdec)), How to process point cloud data.

2. When the second data (D2) is lower than a threshold, the scaled cardinal direction step width (S(φstep, rdec)) is equal to the first data (D1), and the first data (D1) is determined by a decoding radius (rdec); The method for processing point cloud data according to claim 1 .

3. The first data (D1) is inversely proportional to the product of the decoding radius and one or more scaling coefficients (α). The method for processing point cloud data according to claim 2 .

4. Obtaining the second data (D2) by applying a monotonic function to the decoding radius (rdec), and comparing the second data (D2) with a second threshold (TH) obtained by applying the same monotonic function to the threshold. The method for processing point cloud data according to claim 2 or 3.

5. The monotonic function is defined as a function that provides integer bounds on the residual azimuth angle. The method for processing point cloud data according to claim 4.

6. The first data (D1) is obtained from an approximation of 2π / (rdec*α*ΔIφ), where rdec is the decoding radius, α is a scaling factor equal to or greater than 1, and ΔIφ corresponds to an internal accuracy of the azimuth angle. The method for processing point cloud data according to claim 4 or 5.

7. The first data (D1) is obtained by repeatedly refining the approximation. The method for processing point cloud data according to claim 6.

8. The approximation is obtained by finding the largest power of a factor of 2 of the cardinal orientation step width that is smaller than 2π / (rdec*α*ΔIφ), The method for processing point cloud data according to claim 6.

9. A method of processing point cloud data, comprising: decoding a point cloud from a bitstream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point, the method of processing point cloud data comprising: determining a base azimuth step width (φstep) from the bit stream; obtaining (220) a decoded radius (rdec) of a point in the point cloud from a residual radius (rres,dec) decoded from the bitstream; obtaining (130) a scaled basic orientation step size (S(φstep,rdec)) associated with a point of the point cloud, where if second data (D2) which is the decoding radius (rdec) of the point is lower than a threshold (TH), the scaled basic orientation step size (S(φstep,rdec)) is greater than the basic orientation step size (φstep), and if the second data (D2) is equal to or greater than the threshold (TH), the scaled basic orientation step size (S(φstep,rdec)) is equal to the basic orientation step size (φstep); Decoding (230) a number of scaled cardinal orientation step sizes (ms) from the bitstream; Decoding (240) a decoded residual azimuth angle (φres,dec) from the bitstream; obtaining (250) a decoded azimuth angle (φdec) from the decoded residual azimuth angle (φres,dec) and a predicted azimuth angle derived (150) from a number of scaled basic azimuth step sizes (ms) and the scaled basic azimuth step size (S(φstep,rdec)); How to process point cloud data.

10. When the second data (D2) is lower than a threshold (TH), the scaled cardinal direction step width (S(φstep, rdec)) is equal to the first data (D1), and the first data (D1) is determined by a decoding radius (rdec). The method for processing point cloud data according to claim 9.

11. the first data (D1) being inversely proportional to the product of the decoding radius and one or more scaling factors (α); The method for processing point cloud data according to claim 10.

12. obtaining the second data (D2) by applying a monotonic function to the decoding radius (rdec) and comparing the second data (D2) with a second threshold (TH) obtained by applying the same monotonic function to the threshold; The method for processing point cloud data according to claim 10 or 11.

13. The monotonic function is defined as a function that provides integer bounds on the residual azimuth angle. The method for processing point cloud data according to claim 12.

14. the first data (D1) is obtained from an approximation of 2π / (rdec*α*ΔIφ), where rdec is the decoding radius, α is a scaling factor equal to or greater than 1, and ΔIφ corresponds to an internal accuracy of the azimuth angle; The method for processing point cloud data according to claim 12 or 13.

15. The first data (D1) is obtained by repeatedly refining the approximation. The method for processing point cloud data according to claim 14.

16. The approximation is obtained by finding the largest power of a factor of 2 of the cardinal direction step size that is smaller than 2π / (rdec*α*ΔIφ), The method for processing point cloud data according to claim 14.

17. A point cloud data processing device, the point cloud data processing device for encoding a point cloud into a bit stream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point and a radius responsive to a distance between the point and a reference point, the point cloud data processing device including one or more processors, the one or more processors being configured as follows: obtaining a scaled base orientation step width associated with a point of the point cloud, the scaled base orientation step width being greater than a base orientation step width if second data is less than a threshold value, and the scaled base orientation step width being equal to the base orientation step width if second data is greater than or equal to a threshold value, the base orientation step width being derived from a frequency and a rotational speed at which a spin sensor head captures the point cloud, and the second data being a decoded radius of the point obtained by encoding and decoding a radius associated with the point; encoding into the bitstream the azimuth angle of the point, a prediction of the azimuth angle, and a number of scaled basic orientation step sizes obtained from the scaled basic orientation step size; and encoding into the bitstream a residual azimuth angle of the point between the azimuth angle of the point and a predicted azimuth angle derived from a number of scaled base azimuth step sizes and the scaled base azimuth step size; A point cloud data processing device.

18. A point cloud data processing device, the point cloud data processing device for decoding a point cloud from a bit stream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point and a radius responsive to a distance between the point and a reference point, the point cloud data processing device including one or more processors, the one or more processors being configured as follows: determining a cardinal direction step size from the bit stream; obtaining a decoded radius of a point in the point cloud from a residual radius decoded from the bitstream; obtaining a scaled basic orientation step size associated with a point of the point cloud, the scaled basic orientation step size being greater than the basic orientation step size if second data, the decoding radius of the point, is less than a threshold value, and the scaled basic orientation step size being equal to the basic orientation step size if second data, the decoding radius of the point, is greater than or equal to a threshold value; Decoding a number of scaled cardinal orientation step sizes from the bitstream; Decoding a decoded residual azimuth from the bitstream; and obtaining a decoded azimuth angle from the decoded residual azimuth angle and a predicted azimuth angle derived from the number of scaled basic azimuth step widths and the scaled basic azimuth step width; A point cloud data processing device.

19. A computer program comprising: a computer program, the computer program being executed by one or more processors, the one or more processors executing a method for encoding a point cloud into a bit stream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point, the method comprising: obtaining a scaled basic orientation step size associated with a point of the point cloud, the scaled basic orientation step size being greater than a basic orientation step size if second data is below a threshold value, and equal to the basic orientation step size if second data is equal to or greater than a threshold value, the basic orientation step size being derived from the frequency and rotation speed at which the spin sensor head captures the point cloud, the second data being a decoded radius of the point obtained by encoding and decoding a radius associated with the point; encoding into the bitstream the azimuth angle of the point, a prediction of the azimuth angle, and a number of scaled basic orientation step sizes obtained from the scaled basic orientation step size; and encoding into the bitstream a residual azimuth angle of the point between the azimuth angle of the point and a predicted azimuth angle derived from a number of scaled base azimuth step sizes and the scaled base azimuth step size. Computer program.

20. A computer program, the computer program being executed by one or more processors, the one or more processors executing a method for decoding a point cloud from a bit stream of encoded point cloud data representing a physical object, each point of the point cloud being associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point, and a radius responsive to a distance between the point and a reference point, the method comprising: determining a cardinal direction step size from the bit stream; obtaining decoded radii of points in the point cloud from residual radii decoded from the bitstream; obtaining a scaled basic orientation step size associated with a point of the point cloud, the scaled basic orientation step size being greater than a basic orientation step size if a second datum, the decoding radius of the point, is less than a threshold value, and the scaled basic orientation step size being equal to the basic orientation step size if the second datum is greater than or equal to a threshold value; decoding a number of scaled cardinal orientation step sizes from the bitstream; decoding a decoded residual azimuth angle from the bitstream; obtaining a decoded azimuth angle from the decoded residual azimuth angle and a predicted azimuth angle derived from a number of scaled basic azimuth step sizes and the scaled basic azimuth step size; Computer program.

21. 1. A non-transitory storage medium carrying program code instructions for performing a method of decoding a point cloud from a bitstream of encoded point cloud data representing a physical object, wherein each point of the point cloud is associated with spherical coordinates representing an azimuth angle responsive to a capture angle of a sensor of a spin sensor head capturing the point and a radius responsive to a distance between the point and a reference point, the instructions, when executed by one or more processors, implementing the method, the method comprising: determining a cardinal direction step size from the bit stream; obtaining decoded radii of points in the point cloud from residual radii decoded from the bitstream; obtaining a scaled basic orientation step size associated with a point of the point cloud, the scaled basic orientation step size being greater than a basic orientation step size if a second datum, the decoding radius of the point, is less than a threshold value, and the scaled basic orientation step size being equal to the basic orientation step size if the second datum is greater than or equal to a threshold value; decoding a number of scaled cardinal orientation step sizes from the bitstream; decoding a decoded residual azimuth angle from the bitstream; obtaining a decoded azimuth angle from the decoded residual azimuth angle and a predicted azimuth angle derived from a number of scaled basic azimuth step sizes and the scaled basic azimuth step size; Non-transitory storage media.

Citation Information

Patent Citations

  • Vehicles with Multiple Light Detection and Ranging Devices (LIDAR)

    JP2018517889A

  • Method, apparatus, and computer program for point cloud compression

    JP2022518888A

  • Vehicle with Multiple Light Detection and Ranging Devices (LIDARs)

    US20160282468A1

  • Method and apparatus for point cloud compression

    US20200394822A1

  • Method and apparatus for point cloud compression

    WO2020251888A1