Search

US-12626414-B2 - Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head

US12626414B2US 12626414 B2US12626414 B2US 12626414B2US-12626414-B2

Abstract

A method of encoding a point cloud into a bitstream, each point of the point cloud being associated with spherical coordinates representing an azimuthal angle and a radius, includes: obtaining a scaled elementary azimuthal step associated with a point of the point cloud, the scaled elementary azimuthal step being equal to first data greater than an elementary azimuthal step in response to second data being strictly lower than a threshold, and being equal to the elementary azimuthal step otherwise; encoding, in the bitstream, a number of scaled elementary azimuthal steps obtained from an azimuthal angle of the point, a prediction of the azimuthal angle and the scaled elementary azimuthal step; and encoding, in the bitstream, an residual azimuthal angle of the point between the azimuthal angle of the point and a predicted azimuthal angle derived from the number of scaled elementary azimuthal steps and the scaled elementary azimuthal step.

Inventors

  • JONATHAN TAQUET
  • SEBASTIEN LASSERRE

Assignees

  • BEIJING XIAOMI MOBILE SOFTWARE CO., LTD.

Dates

Publication Date
20260512
Application Date
20211013
Priority Date
20210409

Claims (20)

  1. 1 . A method of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential, the method comprising: obtaining a scaled elementary azimuthal step (S(φ step , r dec )) associated with a point of the point cloud, the scaled elementary azimuthal step (S(φ step , r dec )) being equal to first data (D 1 ) greater than an elementary azimuthal step (φ step ) in response to second data (D 2 ) being strictly lower than a threshold, and the scaled elementary azimuthal step (S(φ step , r dec )) being equal to the elementary azimuthal step (φ step ) in response to the second data (D 2 ) being equal to or greater than the threshold, the elementary azimuthal step (φ step ) being derived from frequencies and rotation speed at which a spinning sensor head captured the point cloud, and the second data (D 2 ) depending on a decoded radius (r dec ) of the point obtained by encoding and decoding a radius associated with the point; encoding, in the bitstream, a number (m s ) of scaled elementary azimuthal steps obtained from an azimuthal angle of the point, a prediction of the azimuthal angle and the scaled elementary azimuthal step; and encoding, in the bitstream, an residual azimuthal angle of the point between the azimuthal angle of the point and a predicted azimuthal angle derived from the number (m s ) of scaled elementary azimuthal steps and the scaled elementary azimuthal step (S(φ step , r dec )).
  2. 2 . A method of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential, the method comprising: decoding an elementary azimuthal step (φ step ) from the bitstream; obtaining a decoded radius (r dec ) of a point of the point cloud from a decoded residual radius (r res,dec ) decoded from the bitstream; obtaining a scaled elementary azimuthal step (S(φ step , r dec )) associated with a point of the point cloud, the scaled elementary azimuthal step (S(φ step , r dec )) being equal to first data (D 1 ) greater than the elementary azimuthal step (φ step ) in response to second data (D 2 ), depending on the decoded radius (r dec ) of the point, being strictly lower than a threshold (TH), and the scaled elementary azimuthal step (S(φ step , r dec )) being equal to the elementary azimuthal step (φ step ) in response to the second data (D 2 ), depending on the decoded radius (r dec ) of the point, being equal to or greater than the threshold (TH); decoding a number (m s ) of scaled elementary azimuthal steps from the bitstream; decoding a decoded residual azimuthal angle (φ res,dec ) from the bitstream; and obtaining a decoded azimuthal angle (φ dec ) from the decoded residual azimuthal angle (φ res,dec ) and a predicted azimuthal angle derived from the number (m s ) of scaled elementary azimuthal steps and the scaled elementary azimuthal step (S(φ step , r dec )).
  3. 3 . The method of claim 1 , wherein the first data (D 1 ) depends on the decoded radius (r dec ).
  4. 4 . The method of claim 3 , wherein the first data (D 1 ) is inversely proportional to a product of the decoded radius and a scaling factor (α) greater than or equal to 1.
  5. 5 . The method of claim 1 , wherein the second data (D 2 ) is the decoded radius (r dec ).
  6. 6 . The method of claim 1 , wherein the second data (D 2 ) is obtained by applying a monotonic function on the decoded radius (r dec ) and the second data (D 2 ) is compared with a second threshold (TH) obtained by applying a same monotonic function on the threshold.
  7. 7 . The method of claim 6 , wherein the monotonic function is defined as a function providing an integer bound of the residual azimuthal angle.
  8. 8 . The method of one claim 6 , wherein the first data (D 1 ) is obtained from an approximation of 2π/(r dec *α*ΔIφ) where r dec is the decoded radius, α is a scaling factor greater than or equal to 1, and ΔIφ corresponds to an internal precision for the azimuthal angles.
  9. 9 . The method of claim 8 , wherein the first data (D 1 ) is obtained by refining iteratively the approximation.
  10. 10 . The method of claim 8 , wherein the approximation is obtained by finding a highest power of two factor of an elementary azimuthal step that is lower than 2π/(r dec *α*ΔIφ).
  11. 11 . An apparatus of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential, the apparatus comprising one or more processors configured to: obtain a scaled elementary azimuthal step associated with a point of the point cloud, the scaled elementary azimuthal step being equal to first data greater than an elementary azimuthal step in response to second data is strictly lower than a threshold, and the scaled elementary azimuthal step being equal to the elementary azimuthal step in response to the second data being equal to or greater than the threshold, the elementary azimuthal step being derived from frequencies and rotation speed at which a spinning sensor head captured the point cloud, and the second data depending on a decoded radius of the point obtained by encoding and decoding a radius associated with the point; encode, in the bitstream, a number of scaled elementary azimuthal steps obtained from an azimuthal angle of the point, a prediction of the azimuthal angle and the scaled elementary azimuthal step; and encode, in the bitstream, an residual azimuthal angle of the point between the azimuthal angle of the point and a predicted azimuthal angle derived from the number of scaled elementary azimuthal steps and the scaled elementary azimuthal step.
  12. 12 . An apparatus of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential, the apparatus comprising one or more processors configured to perform the method of claim 2 .
  13. 13 . A non-transitory computer-readable storage medium carrying instructions of program code for executing the method of claim 2 .
  14. 14 . The method of claim 2 , wherein the first data (D 1 ) depends on the decoded radius (r dec ).
  15. 15 . The method of claim 14 , wherein the first data (D 1 ) is inversely proportional to a product of the decoded radius and a scaling factor (α) greater than or equal to 1.
  16. 16 . The method of claim 2 , wherein the second data (D 2 ) is the decoded radius (r dec ).
  17. 17 . The method of claim 2 , wherein the second data (D 2 ) is obtained by applying a monotonic function on the decoded radius (r dec ) and the second data (D 2 ) is compared with a second threshold (TH) obtained by applying a same monotonic function on the threshold.
  18. 18 . The method of claim 17 , wherein the monotonic function is defined as a function providing an integer bound of the residual azimuthal angle.
  19. 19 . The method of claim 17 , wherein the first data (D 1 ) is obtained from an approximation of 2π/(r dec *α*ΔIφ) where r dec is the decoded radius, a is a scaling factor greater than or equal to 1, and ΔIφ corresponds to an internal precision for the azimuthal angles; wherein the first data (D 1 ) is obtained by refining iteratively the approximation; wherein the approximation is obtained by finding a highest power of two factor of an elementary azimuthal step that is lower than 2π/(r dec *α*ΔIφ).
  20. 20 . A non-transitory computer-readable storage medium carrying instructions of program code for executing the method of claim 1 .

Description

CROSS-REFERENCE TO RELATED APPLICATION This application is a U.S. national phase application of International Patent Application No. PCT/CN2021/123665, filed on Oct. 13, 2021, which claims priority to European Patent Application No. EP21305461.2 filed on Apr. 9, 2021, the contents of both of which are hereby incorporated by reference in their entireties into this disclosure. FIELD The application generally relates to point cloud compression and, in particular to methods and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensor head. BACKGROUND As a format for the representation of 3D data, point clouds have recently gained traction as they are versatile in their capability in representing all types of physical objects or scenes. Virtual Reality (VR), Augmented Reality (AR) and immersive worlds have recently become a hot topic and are foreseen by many as the future of 2D flat video. The basic idea is to immerse the viewer in a surrounding environment, in contrast to a standard TV that only allows the viewer to look at the virtual world in front of him/her. There are several gradations in the immersivity depending on the freedom of the viewer in the environment. A point cloud is a good format candidate for distributing VR/AR worlds. A point cloud is a set of points located in a tridimensional (3D) space, optionally with additional values attached to each of the points. These additional values are usually called attributes. Attributes may be, for example, three-component colors, material properties like reflectance and/or two-component normal vectors to a surface associated with a point. A point cloud is thus a combination of a geometry (locations of the points in a 3D space usually represented by 3D cartesian coordinates x, y and z) and attributes. Point clouds may be captured by various types of devices like an array of cameras, depth sensors, lasers (light detection and ranging, also known as Lidars), radars, or may be computer-generated (for example in movie post-production). Depending on the use cases, points clouds may have from thousands to up to billions of points for cartography applications. Raw representations of point clouds require a very high number of bits per point, with at least a dozen of bits per cartesian coordinate x, y or z, and optionally more bits for the attribute(s), for instance three times 10 bits for the colors. SUMMARY According to a first aspect, there is provided a method of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential. The method comprises obtaining a scaled elementary azimuthal step associated with a point of the point cloud, the scaled elementary azimuthal step being equal to a first data greater than an elementary azimuthal step in response to a second data being strictly lower than a threshold, and the scaled elementary azimuthal step being equal to the elementary azimuthal step in response to the second data being equal to or greater than the threshold, the elementary azimuthal step being derived from frequencies and rotation speed at which a spinning sensor head captured the point cloud, and the second data depending on a decoded radius of the point obtained by encoding and decoding a radius associated with the point; encoding, in the bitstream, a number of scaled elementary azimuthal steps obtained from an azimuthal angle of the point, a prediction of the azimuthal angle and the scaled elementary azimuthal step; and encoding, in the bitstream, an residual azimuthal angle of the point between the azimuthal angle of the point and a predicted azimuthal angle derived from the number of scaled elementary azimuthal steps and the scaled elementary azimuthal step. According to a second aspect, there is provided a method of 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 azimuthal angle responsive to a capture angle of a sensor of a spinning sensor head that captured the point and a radius responsive of a distance of the point from a referential. The method comprises decoding an elementary azimuthal step from the bitstream; obtaining a decoded radius of a point of the point cloud from a decoded residual radius decoded from the bitstream; obtaining a scaled elementary azimuthal step associated with a point of the point cloud, the scaled elementary azimuthal step being equal to a first data greater than the elementary azimuthal step in response to a second data, depending on the decoded radius of the point, being strictly lower than a threshold, and the scaled elementary azimuthal step being e