Method and apparatus for encoding / decoding point cloud geometry data sensed by at least one sensor - Patents.com

The method addresses the challenge of combining low latency and high compression performance in point cloud codecs by encoding the order index difference of occupied coarse points, enabling efficient encoding and decoding of point cloud data.

JP7661620B2Active Publication Date: 2025-04-14BEIJING XIAOMI MOBILE SOFTWARE CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024518632
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-09-30
Filing Date
2022-06-21
Publication Date
2025-04-14
Estimated Expiration
2042-06-21

AI Technical Summary

Technical Problem

Existing point cloud codecs fail to efficiently combine simplicity of encoding and decoding, low latency, and high compression performance, particularly in applications requiring real-time transmission of sparse geometry data from mobile vehicles.

Method used

A method for encoding and decoding point cloud geometry data using ordered coarse points, where the order index difference between occupied coarse points is encoded into a bitstream, allowing for efficient identification of late occupied coarse points and maintaining low latency.

Benefits of technology

This approach enables efficient encoding and decoding of point cloud data while maintaining low latency, effectively addressing the limitations of existing codecs in terms of compression performance and simplicity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007661620000014
    Figure 0007661620000014
  • Figure 0007661620000015
    Figure 0007661620000015
  • Figure 0007661620000016
    Figure 0007661620000016
Patent Text Reader

Abstract

A method and apparatus are provided for encoding / decoding point cloud geometry data represented by ordered coarse points occupying some discrete locations of a set of discrete locations in a two-dimensional space, where the ordered coarse points are ordered based on a lexicographical order based on coordinates in the two-dimensional space. The method includes: next ) is a late occupied rough point or not (S next ) into a bitstream, where the order in the lexicographic order of the occupied coarse points is related to the reference coarse points (P ref ), the occupied coarse point is a later occupied coarse point (P next ) is considered to be
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This application claims priority to and the benefit of European Patent Application No. 21306360.5, filed September 30, 2021, the entire contents of which are incorporated herein by reference for all purposes.

[0002] The present application relates generally to point cloud compression, and more particularly to a method and apparatus for encoding / decoding point cloud geometry data sensed by at least one sensor. [Background technology]

[0003] This section is intended to introduce the reader to various aspects of the art, which may be related to various aspects of at least one embodiment of the present application that are described and / or claimed below. This discussion is believed to be helpful in providing the reader with background information to better understand all aspects of the present application.

[0004] Point clouds have recently gained attention as a format to represent 3D data. It varies in its ability to represent all types of physical objects or scenarios. Point clouds can be used for various purposes, such as cultural heritage / architecture, to scan objects like sculptures or buildings in a 3D way in order to share the spatial configuration of the object without transmitting or accessing it. It is also a way to ensure the preservation of knowledge of an object in case it may be destroyed. For example, a temple destroyed in an earthquake. Usually, this type of point cloud is static, colored and huge.

[0005] Another use case is in topography and cartography, where a 3D representation is used to allow maps to be not limited to flat surfaces but to include relief. Google Maps is currently a good example of a 3D map, but it uses a mesh rather than a point cloud. However, a point cloud may be an appropriate data format for a 3D map, and usually this type of point cloud is static, colored, and large.

[0006] Virtual reality (VR), augmented reality (AR), and immersive worlds have been a hot topic lately and are seen by many as the future of 2D tablet video. The basic idea is to immerse the viewer in the surrounding environment, but standard TV only allows the viewer to see the virtual world in front of him / her. There are several levels of immersion depending on the viewer's freedom in the environment. Point clouds are a good format candidate to distribute VR / AR worlds.

[0007] The automotive industry, especially the foreseeable field of autonomous vehicles, is also an area where point clouds can be used extensively. Autonomous vehicles should be able to "sense" their environment in order to make better driving decisions based on the presence and nature of detected objects in their nearest vicinity, and on the road layout.

[0008] A point cloud is a collection of points located in three-dimensional (3D) space, optionally with additional values ​​attached to each point. These additional values ​​are typically called attributes. An attribute may be, for example, a three-component color, a material property (e.g., reflectance), and / or a two-component normal vector to a surface associated with the point.

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

[0010] Point clouds can be sensed by various types of devices, such as an array of cameras, depth sensors, lasers (also called light detection and ranging, laser lidar), radar, or can be computer-generated (e.g., for movie post-production). Depending on the use case, for cartography, a point cloud may contain thousands to billions of points. The original representation of the point cloud requires a very large number of bits per point, at least a dozen bits per Cartesian coordinate x, y, or z, and optionally provides more bits for one or more attributes, e.g., three times the 10 bits for color.

[0011] In many applications it is important to be able to distribute point clouds to end users or store them on a server while maintaining an acceptable (or preferably very good) quality of experience, consuming only a reasonable number of bitrates or storage space. Efficient compression of these point clouds is a key point for the practical realization of many immersive world distribution chains.

[0012] For distribution and visualization by end users, e.g., in AR / VR glasses or any other 3D-enabled device, the compression may be lossy (e.g., in the case of video compression), but there are also use cases that require lossless compression in order not to alter decisions obtained from subsequent analysis of the compressed and transmitted point cloud, such as medical applications or autonomous driving.

[0013] Until recently, the mass market had no solution to the problem of point cloud compression (aka PCC), and there were no standardized point cloud decoders available. In 2017, the standardization working group ISO / J CT1 / SC29 / WG11, also known as the Video Imagery Experts Group or MPEG, initiated a working project on point cloud compression, which has resulted in two standards: MPEG-I Part 5 (ISO / IEC 23090-5) or Video-Based Point Cloud Compression (aka V-PCC) MPEG-I Part 9 (ISO / IEC 23090-9) or Geometry-Based Point Cloud Compression (aka G-PCC)

[0014] The V-PCC coding method compresses point clouds by multiple projections onto a 3D object to obtain 2D patches that are packaged into an image (or video in the case of processing dynamic point clouds). It compresses images and videos captured with existing image / video codecs, making the most of image and video solutions already in place. By its very nature, V-PCC is only efficient with dense and continuous point clouds, since image / video codecs cannot compress non-smooth patches, such as those obtained from projections of sparse geometry data sensed by laser lidar.

[0015] The G-PCC coding method has two schemes for compressing sparse sensed geometry data.

[0016] The first approach is based on an occupancy tree, which is any type of tree, locally octet, quad or binary, representing the point cloud geometry. Occupied nodes (i.e. nodes related to cubes / cuboids that contain at least one point of the point cloud) are split until a certain size is reached, and the 3D location of the points is provided by occupied leaf nodes, usually located at the center of these nodes. The occupancy information is carried by occupancy data (binary data, flags), which send signals to communicate the occupancy state of each of the node's subnodes. By using neighborhood-based prediction techniques, a high level of compression can be obtained for data occupied by dense point clouds. Sparse point clouds can also be solved by directly encoding the location of non-minimal sized points in the node, stopping the tree construction when only isolated points exist in the node. Such techniques are called direct coding mode (DCM).

[0017] The second approach is based on a prediction tree, where each node represents the 3D location of a point, and the parent / child relationships between nodes represent the spatial prediction from parent to child. This approach only solves sparse point clouds, and offers the advantages of lower latency and easier decoding than occupancy trees. However, it offers only a small improvement in compression performance over the first occupancy-based approach, and increases the coding complexity as the encoder needs to intensively search for the best predictor (from a long list of potential predictors) when building the prediction tree.

[0018] In these two schemes, attribute (decoding) encoding is done after geometry (decoding) encoding is completed, so effectively two encodings occur. Thus, joint geometry / attribute low latency is achieved by decomposing the 3D space into slices of sub-volumes that are coded independently, without prediction between the sub-volumes. Using many slices severely impacts compression performance.

[0019] The combination of requirements for encoder and decoder simplicity, low latency and compression performance is a problem that has yet to be satisfactorily solved by existing point cloud codecs.

[0020] An important use case is the transmission of sparse geometry data sensed by at least one sensor mounted on a moving vehicle. In this case, a simple and low-latency embedded encoder is usually required. The requirement for simplicity limits the processing power available to the point cloud encoder, since the encoder may be located in a computing unit that performs other processing in parallel (e.g., (semi-)automated driving). Also, low latency is required to check the local traffic in real time based on the collection of multiple vehicles and to make rapid enough decisions based on the traffic information to enable fast transmission from the car to the cloud. The use of 5G allows the transmission latency to be low enough, but the encoder itself should not introduce too much latency for encoding. And since the flow of data from millions of cars to the cloud is expected to be huge, compression performance is crucial.

[0021] Specific priors related to sparse geometry data sensed by spin laser radar have already been exploited in G-PCC, leading to very significant compression gains.

[0022] First, G-PCC utilizes the elevation angle (relative to the horizontal ground) sensed by a spinning laser radar head 10, as shown in Figures 1 and 2. The laser radar head 10 includes a collection of sensors 11 (e.g., laser devices), five of which are shown here. The spinning laser radar head 10 can rotate around a vertical axis z to sense the geometry data of a physical object. The geometry data sensed by the laser radar is then expressed in spherical coordinates (r 3D ,φ,θ) and r 3D is the distance from point P to the center of the laser radar head, φ is the azimuth angle of the self-rotation of the laser radar head relative to the reference object, and θ is the elevation angle of the sensor k of the laser radar head 10 relative to the horizontal reference plane.

[0023] As shown in Fig. 3, a regular distribution along the azimuth angle is observed in the laser radar sensed data. This regularity is used in G-PCC to obtain a quasi-1D representation of the point cloud, and the noise is reduced to a radius of r 3D Only the angle φ and θ can take on only discrete values, and the angles φ and θ can take on only discrete values. i ∀i=0~I-1, I is the number of azimuth angles for sensing the point, and θj∀i=0~N sensor -1, and N sensor is the number of sensors in the spinning laser radar head 10. Essentially, as shown in Figure 3, G-PCC uses sparse geometry data sensed by a laser radar in a two-dimensional (discrete) angular coordinate space (φ, θ) and the radius value r 3D Represents.

[0024] In spherical coordinate space, the discrete property of angles is used to predict the position of the current point based on already coded points; such quasi-1D property is already exploited in G-PCC in both occupancy and prediction trees.

[0025] More precisely, occupancy trees make extensive use of DCM and use a context self-adaptive entropy encoder to entropy code the direct positions of points in nodes, as well as the local transformation from point positions to angular coordinates (φ,θ), and the discrete angular coordinates (φ i ,θ j ) to get the context. The quasi-1D nature of this coordinate space (r 2D ,φ i ,θ j ), the prediction tree uses the angle coordinate (r 2D ,φ,θ) and directly encode the first version of the point location in r 2D is the projection radius on the horizontal xy plane. Next, the spherical coordinates (r 2D ,φ,θ) to 3D Cartesian coordinates (x, y, z) and encode the xyz residuals to address errors in the coordinate transformation, approximations in elevation and azimuth angles, and potential noise.

[0026] G-PCC certainly uses an angular prior to better compress the sparse geometry data sensed by the spinning laser radar, but does not adapt the coding structure to the sensing order. In essence, the occupancy tree needs to be coded to its final depth before outputting the points. This occupancy data is coded according to a so-called breadth priority: first the occupancy data of the root node is coded to indicate which subnodes it is occupied, then the occupancy data of each occupied subnode is coded to indicate which grandchild nodes it is occupied on, and so on, until the leaf nodes are determined and the corresponding points are provided / output to the application or to the attribute coding scheme(s). For prediction trees, the encoder is free to choose the order of the points in the tree, but to obtain good compression performance and optimize the prediction accuracy, G-PCC recommends coding one tree per sensor. This mainly has the same disadvantages as using one coding slice for each sensor, i.e. non-optimal compression performance, since no prediction between sensors is possible and low encoder latency is not provided. To make matters worse, each sensor should have one encoding process, which is unrealistic since the number of core encoding units needs to be equal to the number of sensors.

[0027] In other words, in the framework of a spinning sensor head for sensing sparse geometric data of a point cloud, the prior art does not solve the problem of combining simplicity of encoding and decoding, low latency, and compression performance.

[0028] Also, using spinning sensor heads to sense the sparse geometric data of a point cloud has some drawbacks, and other types of sensor heads can be used.

[0029] The mechanical parts that generate the spin of the spin sensor head are prone to breakage and are expensive. Also, due to its structure, the viewing angle is necessarily 2π. This does not allow sensing of certain areas of interest at high frequencies, for example, sensing the front of the vehicle may be more interesting than sensing the rear. In fact, in most cases, when the sensor is mounted on a vehicle, most of the 2π viewing angle is blocked by the vehicle itself, and the blocked viewing angle does not need to be sensed.

[0030] Recently, new sensors have emerged that allow more flexibility in selecting the area to be sensed. In most recent designs, the sensor can be moved more freely electronically (to avoid fragile mechanical parts) to obtain various sensing paths in the 3D scene, as shown in Figure 5. In Figure 5, a group of four sensors is shown. Although their relative sensing directions (i.e., azimuth and elevation angles) are fixed relative to each other, they generally sense the scene along a programmable sensing path depicted by a dashed line in the two-dimensional angular coordinate (φ, θ) space. Then, points of the point cloud can be sensed regularly along the sensing path. As shown in Figure 6, some sensor heads can also adjust their sensing frequency by increasing their sensing frequency when a region of interest R is detected. Such a region of interest R can be associated, for example, with a close-range object, a moving object, or any object (pedestrian, other vehicle, etc.) that has been previously segmented in the previous frame or dynamically segmented in the sensing period. FIG. 7 shows a schematic of another example of a sensing path (a typical zigzag sensing path) used by a sensor head including two sensors that can increase their sensing frequency if an area of ​​interest (gray shaded points and gray hash points) is detected. Using a zigzag sensing path can be advantageously used to sense a finite (azimuth) angular sector of a 3D scene. Since the sensor can be mounted on a vehicle, the viewport of interest is necessarily limited by the presence of the vehicle itself, which occludes the scene, unless the sensor is located on top of the vehicle. Therefore, a sensor with a limited sensing angular sector is highly visible and easier to integrate into the vehicle.

[0031] As shown in FIG. 8, a sensor head including a single sensor may be used to sense multiple positions (two vertical positions in FIG. 8), such as using reflections off a mirror that oscillates with rotation (here vertical rotation). In this case, instead of using a group of sensors, sensing using a group of sensors is simulated using a single sensor at different angular positions (i.e., having different elevation angles in FIG. 8) along a sensing path (here a zigzag sensing path). For simplicity, in the following description and claims, a "sensor head" may refer to a group of physical sensors or a set of sensing elevation indexes that simulate a group of sensors. Those skilled in the art will also appreciate that a "sensor" may also refer to a sensor at each sensing elevation index position.

[0032] Combining the requirements of encoder and decoder simplicity, low latency, and compression performance for point clouds sensed by any type of sensor is a problem that has not yet been satisfactorily solved by existing point cloud codecs.

[0033] At least one embodiment of the present application is designed with the above in mind. Summary of the Invention [Problem to be solved by the invention]

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

[0035] According to a first aspect of the present application, there is provided a method of encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the method comprising the steps of: encoding data into the bitstream indicating whether an occupied coarse point associated with a point of the point cloud is a late occupied coarse point, the lexicographical order indicating whether an order index in the lexicographical order of the occupied coarse point is a first reference coarse point associated with a previously encoded point of the point cloud; if the order index of the occupied coarse point is lower than the order index of the late occupied coarse point, then the occupied coarse point is considered to be a late occupied coarse point; if the data indicates that the occupied coarse point is a late occupied coarse point, then obtaining a late point order index difference between the order index of the late occupied coarse point and the order index of the second reference coarse point; amplitude and encoding the signal into a bitstream.

[0036] According to a second aspect of the present application, there is provided a method of decoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space from a bit stream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the method comprising the steps of: decoding from the bit stream data indicating whether an occupied coarse point associated with a point of the point cloud is a late occupied coarse point, where if an order in the lexicographical order of the occupied coarse point is lower than an order of a first reference coarse point associated with a previously decoded point of the point cloud, the occupied coarse point is considered to be a late occupied coarse point; and if the data indicates that the occupied coarse point is a late occupied coarse point, decoding from the bit stream a late point order index difference between the order index of the late occupied coarse point and the order index of the second reference coarse point. amplitude and decrypting the encoded data.

[0037] In some embodiments, the first reference coarse point may be the last occupied coarse point encoded or decoded, or the previously encoded or decoded occupied coarse point having the highest order in a dictionary order, and the second reference coarse point is the first reference coarse point, or a coarse point associated with an order equal to the order of the first reference coarse point shifted by an offset.

[0038] In some embodiments, the data may be binary data indicating whether an occupied coarse point associated with a point of the point cloud is a later occupied coarse point, and the data may be entropy encoded or entropy decoded based on at least one other binary data indicating whether at least one previously encoded or decoded occupied coarse point is a later occupied coarse point.

[0039] In some embodiments, the late point order index difference amplitude can be encoded by encoding into the bitstream two positive offsets associated with the coordinates of the two-dimensional space, or by encoding the late point order index difference amplitude can be decoded by decoding from the bitstream the two positive offsets associated with the coordinates in the two-dimensional space.

[0040] In some embodiments, encoding or decoding one of the positive offsets may include encoding or decoding a first positive value and a second positive value whose sum equals the positive offset.

[0041] In some embodiments, encoding or decoding the first positive value or the second positive value may include entropy encoding or entropy decoding a sequence of binary data representing the first positive value or the second positive value.

[0042] In some embodiments, encoding or decoding the further positive offset may include entropy encoding or entropy decoding a sequence of binary data representing the further positive offset.

[0043] According to a third aspect of the present application, there is provided an apparatus for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the apparatus comprising one or more processors configured to perform a method according to the first aspect of the present application.

[0044] According to a fourth aspect of the present application, there is provided an apparatus for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the apparatus comprising one or more processors configured to perform a method according to the second aspect of the present application.

[0045] According to a fifth aspect of the present application, there is provided a bitstream of encoded point cloud data representing a point cloud geometry shape represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space, said ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the bitstream further comprising data indicating whether an occupied coarse point associated with a point of the point cloud is a later occupied coarse point, wherein if the order in the lexicographical order of an occupied coarse point is lower than the order of a reference coarse point associated with a previously encoded point of the point cloud, then the occupied coarse point is considered to be a later occupied coarse point.

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

[0047] According to a seventh aspect of the present application, there is provided a non-transitory storage medium comprising program code instructions for performing the method of the first aspect of the present application.

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

[0049] According to a ninth aspect of the present application, there is provided a non-transitory storage medium comprising program code instructions for performing the method of the second aspect of the present application.

[0050] The specific nature of at least one of the embodiments, as well as other objects, advantages, features, and applications of at least one of the embodiments, will become apparent from the following description of the examples taken in conjunction with the drawings. [Brief description of the drawings]

[0051] Reference is now made, by way of example only, to the drawings which illustrate embodiments of the present application. [Figure 1] FIG. 1 shows a schematic side view of a sensor head according to the prior art and some of its parameters. [Diagram 2] FIG. 1 shows a schematic plan view of a sensor head according to the prior art and some of its parameters; [Diagram 3] 1 is a schematic diagram showing a regular distribution of data sensed by a spin sensor head according to the prior art; [Figure 4] FIG. 1 is a schematic diagram illustrating a representation of points of a point cloud in 3D space according to the prior art; [Diagram 5] FIG. 1 shows a schematic diagram of an example of a sensor head capable of sensing a real scene along a programmable sensing path according to the prior art; [Figure 6] FIG. 1 is a schematic diagram illustrating an example of a sensor head capable of sensing a real scene along a programmable sensing path based on different sensing frequencies according to the prior art; [Figure 7] FIG. 1 is a schematic diagram illustrating an example of a sensor head capable of sensing a real scene along a programmable zigzag sensing path based on different sensing frequencies according to the prior art; [Figure 8] FIG. 13 is a schematic diagram illustrating a single sensor head capable of sensing a real scene along a programmable zigzag sensing path based on different sensing frequencies. [Figure 9] FIG. 2 is a schematic diagram illustrating an example of ordered coarse points of a coarse representation in accordance with at least one embodiment. [Figure 10] FIG. 10 is a schematic diagram illustrating an example of ordered coarse points of a coarse representation sensed by a dual sensor head in accordance with at least one embodiment; [Figure 11] FIG. 1 shows a schematic representation of ordered coarse points in a two-dimensional coordinate (s, λ) space. [Figure 12] FIG. 2 is a schematic diagram illustrating ordered coarse points of a coarse representation in accordance with at least one embodiment; [Figure 13] FIG. 1 is a schematic block diagram illustrating steps of a method 100 for encoding point cloud geometry data into a bitstream of encoded point cloud data according to at least one embodiment. [Figure 14] FIG. 2 is a schematic block diagram illustrating steps of a method 200 for decoding point cloud geometry data from a bitstream of encoded point cloud data in accordance with at least one embodiment. [Figure 15] FIG. 2 is a schematic block diagram illustrating steps of a context self-adaptive binary arithmetic encoder in accordance with at least one embodiment. [Figure 16] 2 is a schematic block diagram illustrating step 140 of method 100 and step 230 of method 200 in accordance with at least one embodiment. [Figure 17] 2 is a schematic block diagram illustrating step 140 of method 100 and step 230 of method 200 in accordance with at least one embodiment. [Figure 18]A diagram showing an example of determining a first positive offset and a positive value when a next occupied coarse point and a reference occupied coarse point have different sample indexes in accordance with at least one embodiment. [Figure 19] A diagram showing an example of determining a first positive offset and a positive value when a next occupied coarse point and a reference occupied coarse point have the same sample index in accordance with at least one embodiment. [Figure 20] A diagram showing an example of determining a first positive offset and a positive value when a next occupied coarse point and a reference occupied coarse point have different sample indexes in accordance with at least one embodiment. [Figure 21] 1 is a schematic block diagram illustrating an example of a system in which various aspects and embodiments may be implemented.Like reference numerals may be used in different figures to represent like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0052] At least one example of the embodiment will be described below with reference to the drawings, and at least one of the embodiments will be illustrated. However, the embodiment can be implemented in many alternative forms and should not be construed as being limited to the examples described herein. Therefore, it should be understood that the embodiment is not intended to be limited to the specific form disclosed. On the contrary, the application is intended to cover all modifications, equivalents and alternatives falling within the spirit and scope of the application.

[0053] On the one hand, it generally relates to point cloud encoding and decoding, on the other hand, it generally relates to the transmission of generated or encoded bitstreams, and on the other hand, it generally relates to the reception / access of decoded bitstreams.

[0054] Additionally, the aspects are not limited to MPEG standards such as MPEG-I Part 5 or Part 9 relating to point cloud compression, etc., but may be applied, for example, to other standards and recommendations, whether existing or developed in the future, and extensions of such standards and recommendations, including MPEG-I Part 5 and Part 9. Unless otherwise indicated or technically excluded, the aspects described in this application may be used alone or in combination.

[0055] The present invention relates to encoding / decoding point cloud geometry data represented by ordered coarse points of a coarse representation occupying several discrete locations of a set of discrete locations in a two-dimensional space.

[0056] For example, in the working group ISO / IEC JTC1 / SC29 / WG7 related to MPEG 3D graphics coding, a new codec called L3C2 (Low Delay Low Complexity Codec) is considered to improve the coding efficiency of laser radar sensed point clouds with respect to the G-PCC codec. The codec L3C2 provides an example of a two-dimensional representation (i.e. a coarse representation) of the points of the point cloud. A description of this code is given in the Working Group's output document N 00167, ISO / IEC JTC1 / SC 29 / WG7, MPEG 3D graphics coding, "Technologies under Consideration in G-PCC", dated 31 August 2021.

[0057] Basically, each sensing point P n For sensing point P n The 3D Cartesian coordinates (x n ,y n ,z n ) to obtain the sensing point P n The sensor index λ associated with the sensor n and the azimuth angle φ, which represents the sensing angle of this sensor. n Then, the azimuth angle φ n and the sensor index λn , and order the points of the point cloud based on, for example, lexicographical order based on azimuth angle first and sensor index second. Then, for point P n The order index o(P n ) is obtained using the following formula:

number

[0058] FIG. 9 is a schematic diagram of ordered coarse points in a coarse representation. Five points of the point cloud have already been sensed. Each of these five points is coarsely represented by a coarse point (black point) in the coarse representation: two coarse points P n and P n+1 is the angle φ at time t1 c (φ i ' s The three coarse points are aligned at an angle φ c +Δφ represent three points of the sensed point cloud. The coarse points that represent points of the sensed point cloud are occupied points, and the coarse points that do not represent points of the sensed point cloud are unoccupied points. Since the points of the point cloud are represented by occupied coarse points in the coarse representation, the order indices associated with the points of the point cloud are also order indices associated with occupied coarse points.

[0059] We can then define a coarse representation of the point cloud geometry data in the 2D coordinate (φ,λ) space.

[0060] Coarse representations can also be defined for any type of sensor head, including rotating (spinning) or non-rotating sensor heads. The definition is based on a sensing path defined by sensor characteristics in a two-dimensional angular coordinate (φ,θ) space, which includes an azimuth angle coordinate φ and an elevation angle coordinate θ, where the azimuth angle represents the sensing angle of the sensor relative to a reference object, and the elevation angle coordinate θ represents the elevation angle of the sensor relative to a horizontal reference plane. The sensing path is used to sense the points of the point cloud based on ordered coarse points that represent potential locations of the sensed points of the point cloud. Each coarse point is defined based on one sample index s associated with a sensing time along the sensing path and one sensor index λ associated with a sensor.

[0061] In Fig. 10, we use a sensor head that includes two sensors. The sensing paths along which the two sensors are located are represented by dashed lines. For each sample index s (each sensing time), we define two coarse points. The coarse points associated with the first sensor are represented by black shaded points in Fig. 10, and the coarse points associated with the second sensor are represented by black hashed points. Each of the two coarse points belongs to a sensor sensing path (dashed line) defined by sensing path SP. Fig. 11 shows a schematic representation of ordered coarse points in a two-dimensional coordinate (s, λ) space. The arrows in Fig. 10 and Fig. 11 indicate the links between two consecutive ordered coarse points.

[0062] Based on the ordering of the coarse points in the ordered coarse points, we associate an order index o(P) with each coarse point.

number

[0063] where K is the number of sensors in the sensor set or the number of different positions of a single sensor for the same sample index, and λ is the sensor index of the sensor that sensed point P in the point cloud at sensing time s.

[0064] Figure 12 shows the ordered coarse points of the coarse representation, showing five occupied coarse points (black circles). Two coarse points P n and P n+1 is occupied by two points of the point cloud sensed at sensing time t1 (corresponding to sample index s1), and the three coarse points are occupied by three points of the point cloud sensed at sensing time t2 (corresponding to sample index s2).

[0065] We can then define a coarse representation of the point cloud geometry data in the 2D coordinate (s,λ) space.

[0066] Apart from the two-dimensional space in which the coarse representation of the point cloud geometry data is defined, encoding the point cloud geometry data includes encoding the occupancy data of the occupied coarse points of the coarse representation by encoding order index differences Δo, where each order index difference Δo is the order index difference between two consecutively occupied coarse points P -1 represents the difference between the order indexes of and P.

number

[0067] In Fig. 9, the first occupied rough point P in the two-dimensional coordinate (φ, λ) space n Assuming that the coordinates of are known in advance, the first order index difference Δo n+1 to obtain the occupied rough point P n+1 The ordering index o(P n+1 ) and the occupied rough points P n The ordering index o(P n ) The second order index difference Δo n+2 to find another occupied rough point P n+2 The ordering index o(P n+2 ) and P n+1 The order index o(P n+1 ) and so on.

[0068] In Figure 12, the first occupied rough point P in the two-dimensional coordinate (s, λ) space n Assuming that the coordinates of are known in advance, the first order index difference Δo n+1 to obtain the occupied rough point P n+1 The order index o(P n+1 ) and the occupied rough points P n The order index o(P n ) in the example. In the example, the rough points (white circles) are unoccupied, so Δo n+1 = 2. The second order index difference Δo n+2 to find another occupied rough point P n+2 The order index o(P n+2 ) and the occupied rough points P n+1 The order index o(P n+1 ) and so on.

[0069] The order index o(P1) of the first coarse point occupied by the first sensed point P1 of the point cloud can be directly coded into the bitstream B. This corresponds to setting the order index of the virtual zeroth point to zero, i.e., o(P0)=0, and coding Δo(1)=o(P1)-o(P0)=o(P1).

[0070] Given the order index o(P1) of the first coarse point occupied by the first sensed point P1 of the point cloud and the order difference Δo, we can recursively reconstruct the order index o(P) of any occupied coarse point occupied by the sensed point P of the point cloud by the following equation:

number

[0071] In the following, the present invention will be described taking into consideration a coarse representation defined in two-dimensional coordinate (s, λ) space. However, since a spin sensor head (such as a laser radar head) is a specific coarse representation defined in two-dimensional coordinate (s, λ) space, a coarse representation defined in two-dimensional coordinate (φ, λ) space can also be described, and at each sensing time, the sensor of the sensor head senses an object, and the sensed point corresponds to the represented occupied coarse point.

[0072] In practice, the order index difference Δo is usually positive since the sensing order of the points in the point cloud is equal to the lexicographic order of the associated occupied coarse points in the coarse representation.

[0073] However, some points in the sensed point cloud based on the sensing order may not completely follow the lexicographic order of the occupied coarse points associated with these sensed points, and these points are called late occupied coarse points.

[0074] For example, if we define a coarse representation in the two-dimensional coordinate (φ, λ) space,

number

[0075] In a coarse representation defined in a two-dimensional coordinate (s, λ) space, noise on the sensed points may cause the sequence of sensed points to have a non-increasing sequence of sample index coordinates s, and thus the sensed points of a point cloud based on the sensing order may not perfectly follow the lexicographic order of the occupied coarse points associated with those sensed points.

[0076] A lexicographic order for ordering the coarse points of the coarse representation may not be suitable for practical systems, in which the sensor heads transmit data to one or more operational components (e.g. encoders and / or embedded data analyzers) via a transmission bus or channel that is prone to transmission errors (e.g. due to transmission collisions or electromagnetic perturbations). In such systems, when a transmission error is detected, the sensor data transmitted by the sensor head is usually retransmitted. However, at the same time, other sensor data may have been transmitted before the previous sensor data is retransmitted.

[0077] For these two practical use cases, the order of the sensed points of the point cloud received as input to the encoder may not necessarily be the desired lexicographical order.

[0078] To solve the problem of late occupied coarse points, the encoder can buffer the sensed points received. By buffering the sensed points, these points can be reordered to calibrate the difference between the sensing order (or reception order) and the dictionary order. Buffering the sensed points is not always an acceptable solution, since the buffer size needs to be large (beyond a practical implementation) to support the correction of the largest possible difference between the sensing order and the dictionary order, especially when the interference level (noise and / or retransmission delay) is high.

[0079] Also, if buffered sensed points are sent to the encoder early and new points that should have been pre-encoded arrive late, there is no real solution: the sensed points must be discarded since they cannot be re-encoded (i.e., late occupied coarse points are lost).

[0080] A priori estimation of the maximum buffer size is completely impossible, since it depends on the maximum difference between the sensing order and the lexicographic order, which depends on the system used. In the worst case, especially in systems prone to transmission errors, some sensed points may need to be retransmitted multiple times before they are successful. Therefore, some sensed points may be lost if they reach the buffer size late or exceed it. To overcome this problem, the maximum buffer size may be overestimated, but this results in a waste of resources.

[0081] Furthermore, one requirement is to design a very low-latency encoding / decoding of point cloud geometry data, which is incompatible with solutions based on reordering of buffer-embedded sensed points, since they introduce unacceptable delays before encoding.

[0082] One of the problems to be solved is to handle the encoding / decoding of late occupied coarse points associated with sensed points of the point cloud relative to the lexicographical ordering of occupied coarse points defined in the coarse representation, while maintaining a low-latency encoding of the points of the point cloud and without significantly degrading the encoding performance obtained in ideal usage scenarios when all sensed points are correctly reordered.

[0083] The locations of the occupied coarse points associated with a sensed point are represented as discrete locations of a mesh in two-dimensional space. This mesh contains rows and columns, and each occupied coarse point belongs to the intersection of a column and a row of the mesh. Each sensor index λ has a row, and each sample index s has a column. If s is angle-related, a straightforward solution to the above problem is to add many empty columns from the currently occupied coarse point and recover the late occupied coarse point by inserting "fake" empty turns (i.e., recover an angle that rotates almost completely to the angle associated with the late occupied coarse point). This works in the sense that the points and the late occupied coarse points can be encoded / decoded. However, the cost of encoding / decoding the empty columns jeopardizes the compression efficiency of the encoding / decoding.

[0084] Briefly, the present invention provides a method for encoding point cloud geometry data represented by ordered coarse points occupying some discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, by ordering the ordered coarse points based on a lexicographical order based on their coordinates in the two-dimensional space.

[0085] The point cloud geometry shape is encoded into a bitstream by encoding an occupied coarse point representing said point of the point cloud in a coarse representation defined by a two-dimensional space. A first reference coarse point P associated with a previously encoded point of the point cloud is encoded. ref By considering each occupied coarse point P associated with a point in the point cloud, next are encoded one after the other. next ) and o(P ref ) is determined by formula (1 or 2), i.e., based on lexicographical order.

[0086] The order index difference Δo is given by the following formula:

number

[0087] order o(Pnext ) is ordered o(P ref ), the next occupied rough point P next is considered to be a late occupied non-coarse point, and the order index difference Δo is positive.

[0088] order o(P next ) is ordered o(P ref ), the next occupied rough point P next is considered to be a late occupied coarse point, and the order index difference Δo is negative.

[0089] Next occupied rough point P next Data S indicating whether or not is a late-occupied rough point next is encoded into the bitstream.

[0090] Next occupied rough point P next Data S indicating whether or not is a late-occupied rough point next Encoding Δo is equivalent to encoding the sign of the order index difference Δo.

[0091] Data S next If indicates that the sign of the order index difference Δo is positive, then encode the order index difference Δo into the bitstream.

[0092] Data S next But the occupied coarse point is the late occupied coarse point P next If you indicate that next ) and a second reference coarse point P' ref The difference in the order index of the later point between the order index of late Get the order index difference amplitude into a bitstream.

[0093] Thus, the method provides a very simple solution to the problem of encoding / decoding late-occupied coarse points while maintaining a low-delay encoding of the points of the point cloud.

[0094] Also, as explained below, if all sensed points are correctly ordered, then the data S next does not significantly degrade the coding performance that would be achieved in ideal usage situations.

[0095] FIG. 13 is a schematic block diagram illustrating steps of a method 100 for encoding point cloud geometry data into a bitstream of encoded point cloud data according to at least one embodiment.

[0096] In step 110, the order index difference Δo is calculated using equation (4), and the data S next The data S is obtained and encoded into bit stream B. next determines whether the order index difference Δo is negative or not, and whether the occupied coarse point P associated with the point of the point cloud is negative. next It can indicate whether or not is a late occupied rough point.

[0097] Data S next is the occupied rough point P next indicates that it is not a late-occupied coarse point, then in step 120, the positive order index difference Δo is encoded into the bitstream B.

[0098] For example, the positive ordinal index difference Δo is binarized into a sequence of binary data, and each binary data of this sequence is entropy coded into a bit stream B.

[0099] Data S next is the occupied rough point P next If P indicates that it is a late occupied coarse point, then in step 130, the order index o(P next ) and a second reference coarse point P' ref The order index o(P' ref ) and the late point order index difference Δo lateNext, in step 140, the later point order index difference Δo late of amplitude |Δo late | is encoded into bitstream B.

[0100] Selectively, amplitude |Δo late If | is not empty, then in step 150, the later point order index difference Δo late Encode the symbols into bitstream B.

[0101] FIG. 14 is a schematic block diagram illustrating steps of a method 200 for decoding point cloud geometry data from a bitstream of encoded point cloud data in accordance with at least one embodiment.

[0102] The decoding method 200 is derived directly from the encoding method 100 .

[0103] In step 210, data S is extracted from the bit stream B. next Decrypt the data S next is the occupied coarse point P associated with the point of the point cloud to be decoded. next is a late occupied coarse point. The first reference coarse point P whose order in the lexicographic order of the occupied coarse points is associated with a previously decoded point of the point cloud. ref If the order is lower than , the occupied coarse point is the late occupied coarse point P next It is considered that.

[0104] Data S next is the occupied rough point P next If indicates that P is not a late occupied coarse point, then step 220 decodes a positive order index difference Δo from bitstream B. The positive order index difference Δo indicates that P is an occupied coarse point. next The order index o(P next ) and the reference rough point P ref The order index o(P ref )

[0105] In one embodiment of step 220, a sequence of binary data may be entropy decoded from bitstream B, and a positive ordinal index difference Δo may be obtained from the decoded sequence of binary data.

[0106] Data S next is the occupied rough point P next If indicates that Δo is a late occupied coarse point, then in step 230, from bitstream B, the late point order index difference Δo late of amplitude |Δo late Decode |.

[0107] Late point order index difference Δo late is the order index o(P next ) and a second reference coarse point P' ref is the difference between the order index of

[0108] Optionally, in step 240: amplitude |Δo late If | is not empty, then from bitstream B, the late point order index difference Δo late The symbols can be decoded.

[0109] In one embodiment of step 150 (240), the later point order index difference Δo late The symbols of may be bypass coded (i.e., they are coded directly as bits without entropy coding).

[0110] In one embodiment, the first reference coarse point P ref is the last encoded or decoded occupied coarse point P associated with the last encoded or decoded point of the point cloud according to the encoding or decoding order. last Equation (4) can be expressed as equation (5) given as follows:

number

[0111] If a late occupied coarse point appears, the last encoded (decoded) occupied coarse point P last may not be the previously (decoded) occupied coarse point with the highest lexicographical order.

[0112] In one embodiment, the first reference coarse point P ref is the previously encoded or decoded occupied coarse point P with the highest ordering index in lexicographical order. high Equation (4) can be expressed as equation (6) given as follows:

number

[0113] In one embodiment, the second reference coarse point P' ref is the first reference coarse point P ref , i.e., the last encoded or decoded occupied coarse point P last or a previously encoded or decoded occupied coarse point P high may be also possible.

[0114] According to this embodiment, the late point order index difference Δo is calculated as in equation (4). late is equal to the order index Δo. The later point order index difference Δo late is a negative order index difference, cannot be positive, and is non-empty. Then, steps 150 and 240 can be omitted, and the symbol, e.g., the late point order index difference Δo late can be estimated to be negative.

[0115] In the presence of small noise in the coordinates φ or s in the two-dimensional space, the late point order index difference amplitude In particular, the second reference coarse point P' can be used to reduce the cost of encoding (decoding) the second reference coarse point P'. ref is the occupied coarse point P that was last encoded or decoded. last This is suitable for an embodiment where

[0116] In one embodiment, the second reference coarse point P' ref may be an occupied or unoccupied coarse point associated with an order index, which is the first reference coarse point P shifted by an offset ref is equal to the ordinal index of .

[0117] In one variant, the negative order index difference Δo obtained from the previously encoded or decoded point and the first reference coarse point P ref The order index o(P ref ), the offset may be calculated based on all or a subset of

[0118] For example, if the offset is 2 N is equal to the average value of the negative order index differences Δo, where N is equal to 3 or 4, e.g., 2 N The last encoded or decoded negative order index difference Δo is equal to the last encoded or decoded negative order index difference Δo.

[0119] In one variation, the late point order index difference Δo late minus 1 amplitude |Δo late | is encoded into (decoded from) bitstream B.

[0120] In one embodiment of the methods 100 and 200, for example, the data S next may be a syntax element represented as "next_point_is_late_flag". next may be binary data (flags).

[0121] In one variant, the data S next To indicate that the next occupied coarse point P does not need to be encoded, for example, a signal may be sent in the geometry parameter set to indicate binary data (flag), which indicates that the next occupied coarse point P nextindicates that the point cloud is not late occupied. Thus, if the point cloud is guaranteed for the ideal use case, there is no coding loss at all. This binary data indicates whether the lexicographical order index always increases during decoding or not, which may be useful for decoding applications, for example, when using a decoding or rendering pipeline that is optimal for the ideal use case.

[0122] In one embodiment of step 110 (210), the data S next is the number of occupied coarse points (P next ) may be binary data indicating whether the point is a late occupied coarse point or not, and at least one other binary data S next,i It can be entropy coded (decoded) based on at least one binary data S next,i Each of the previously encoded (decoded) occupied coarse points P associated with a previously encoded (decoded) point of the point cloud. i is a late occupied coarse point.

[0123] At least one other binary data S next,i Based on binary data S next Entropy coding (decoding) is to entropy-code each binary data S next It is more efficient to encode (decode) binary data S next Provides encoding (decoding) of

[0124] In one embodiment shown in FIG. 15, a context self-adaptive binary arithmetic coding (CABAC) is used to encode binary data S next can be entropy coded (decoded).

[0125] In one variant, binary data S associated with N previously (decoded) occupied rough points are next,i For example, a context ctxIdx can be selected based on N (e.g., N=3) pieces of binary data Snext,i are concatenated to form an N-bit word W.

[0126] A context table Tctx having Nctx entries typically stores a probability associated with a context, with the probability p ctxIdx The context is selected based on the context index ctxIdx according to the following formula:

number

[0127] For example, a context index ctxIdx may correspond to an N-bit word W. Then, a context Ctx is selected as:

number

[0128] Probability p ctxIdx Using binary data S next Entropy encode into (and decode from) bitstream B.

[0129] The entropy encoder (decoder) is usually an arithmetic encoder (decoder), but it may be another type of entropy encoder (decoder), such as an asymmetric digital system. In either case, the optimal encoder adds −log2(p ctxIdx ) bit to S next =1 or -log2(1-p ctxIdx ) bit to S next = 0 is encoded. Binary data S next is encoded (decoded), the encoded (decoded) binary data S next andp ctxIdx With probability p ctxIdxThe update is usually performed using an update table. The updated probability replaces the ctxIdx-th entry in the context table Tctx. Then, another binary data S next The update cycle that returns the context table is done by encoding (decoding) another binary data S next Since the context table can only be (de)coded after the updates have been performed, it becomes a bottleneck in the encoding workflow. To achieve this, memory access to the context table needs to be as fast as possible, and minimizing the size of the context table helps simplify the hardware implementation.

[0130] Selecting the appropriate context, i.e. binary data S next The probability that p is equal to 1 ctxIdx It is important to estimate,to obtain good compression.,The choice of context is therefore based on,at least one binary data,S,associated with the last occupied coarse,points of,N,previously encoded (decoded),. next,i and the correlations between them should be used to obtain this appropriate context.

[0131] In one variant, the context index ctxIdx is determined by the binary data S associated with the N previously (decoded) last occupied coarse points having sensor indices that belong to the determined sensor index group. next,i can be obtained from

[0132] In one variation, multiple groups of consecutive sensors can be formed.

[0133] For example, if the sensor head includes 32 sensors (32 sensor indexes), each group can include four consecutive sensor indexes: {0, 1, 2, 3}, {4, 5, 6, 7}, ..., {28, 29, 30, 31}. Then, an N-bit buffer is used for each group, and binary data S is stored for the sensors that belong to that group.next Each time a is encoded (decoded), the buffer for that group may be updated.

[0134] In one variation, each group may include a unique sensor.

[0135] In one variation, the context may be specific to a set of sensor indices.

[0136] The context self-adaptive binary arithmetic decoder is a decoder that performs the same operations as the entropy decoder with probability p ctxIdx Binary data S encoded from bit stream B using next Besides decoding, it basically performs the same operations as the context self-adaptive binary arithmetic encoder.

[0137] In one embodiment shown in FIG. 16, encoding 310 a first positive offset associated with a first coordinate in two-dimensional space and encoding 311 a second positive offset associated with a second coordinate in two-dimensional space. By encoding the second positive offset (step 320), the later point order index difference Δo late of amplitude |Δo late | (or in a variant, the amplitude |Δo late | minus 1) can be encoded (decoded by decoding, step 230) (step 140).

[0138] If the two-dimensional coordinate space is a two-dimensional coordinate (φ, λ) space, then the first positive offset is a positive azimuthal offset φ offset and the second positive offset is a positive sensor index offset λ offset It is.

[0139] Then, the late point order index difference Δo late is given by the following formula:

number

[0140] In one embodiment of step 310, the positive azimuth offset φ offset can be encoded by the expGolomb code.

[0141] In one embodiment of step 310, a positive azimuth offset φ is calculated based on the self-adaptive context. offset can be entropy coded (decoded).

[0142] In one variation, the positive azimuthal offset φ offset is binary data b k1 In one example, the binary data b k1 The sequence of positive azimuth offsets φ offset where k1 ranges from 0 to φ offset (i.e., it is within φ equal to 1) offset A sequence of continuous binary data followed by a sequence of binary data equal to 0, or a φ equal to 0 offset (It is a sequence of binary data equal to 1 followed by a sequence of binary data equal to 1). k1 is entropy coded using the same context. k1 The sequence is entropy decoded and the resulting binary data b k1 A positive azimuth offset φ from the sequence offset Reconstruct.

[0143] In one variant, the index k1 For each bit b k1 In one embodiment, an entropy coding context for encoding or decoding a vector may be selected.

[0144] If the two-dimensional coordinate space is the two-dimensional coordinate (s, λ) space, then the first positive offset is the positive sample index offset s offsetand the second offset is a positive sensor index offset λ offset It is.

[0145] Then, the late point order index difference Δo late is given by the following formula:

number

[0146] Sensor Index Offset λ offset Assuming that is positive, this variant (Equation 8) is advantageous: If the points are correctly ordered according to the sensor index, they are easier to encode (easier to compress).

[0147] In one embodiment of step 310, a positive sample index offset s offset can be encoded by the expGolomb code.

[0148] In one embodiment of step 310, based on the selection of the self-adaptive context, a positive sample index offset s offset can be entropy coded (decoded).

[0149] In one variation, a positive sample index offset s offset For example, for a positive sample index offset s offset To obtain a unary representation of binary data b k2 (where k2 ranges from 0 to s offset Each binary data b k2 is entropy coded using the same context. k2 The sequence is entropy decoded and the resulting binary data b k2 A positive sample index offset s from the sequence offset Reconstruct.

[0150] In one embodiment of step 320, the positive sensor index offset λ offset can be encoded by the expGolomb code.

[0151] In one embodiment of step 320, a positive sensor index offset λ is determined based on the selection of the self-adaptive context. offset can be entropy coded (decoded).

[0152] In one variation, a positive sensor index offset λ offset is, for example, a positive sensor index offset λ offset To obtain a unary representation of binary data b k3 (where k3 ranges from 0 to λ offset Each binary data b k3 is entropy coded using the context. k3 The sequence is entropy decoded and the resulting binary data b k3 A positive sensor index offset λ from the sequence offset Reconstruct.

[0153] In one variant, based on the binary data index k3 and / or based on the N (e.g. N=1 or N=2) binary data S associated with the N previously (decoded) last occupied coarse points having a sensor index belonging to the determined sensor index group, next,i The context can be selected based on an N-bit word W1 formed by concatenating:

[0154] In one variant, the index (λ ref +k3) N sensor A context for encoding binary data with index k3 may be selected based on the index of the sensor index group to which the sensor with mode k belongs, where λ ref is the second reference coarse point P' refis the sensor index associated with

[0155] In addition, in the formula (7) and the related examples, s offset In φ offset In addition, equation (8) and the related examples can be easily applied to a two-dimensional coordinate space, which is the reconstructed two-dimensional coordinate (s, λ) space in which φ offset s offset This can be easily applied to a two-dimensional coordinate space, where the reconstructed two-dimensional coordinate (φ, λ) space replaces

[0156] In one embodiment shown in FIG. 17, a first positive offset is encoded (decoded by decoding, step 230) (step 310) and a sensor index λ ref Two positive values ​​of λ offset,1 and λ offset,2 A positive sensor index offset λ is obtained by encoding offset By encoding (step 140), the later point order index difference Δo late Width of |Δo late | (or in a variant, the width |Δo late | minus 1) can be encoded as a positive value λ offset,1 and λ offset,2 and sum them to the positive sensor offset λ offset :λ offset = λ offset,1 +λ offset,2 and for example,

number

[0157] In step 330, a first positive value λ offset,1 can be encoded into (and decoded from) bitstream B.

[0158] In step 340, λ offset,1 <N sensor -λ ref If , then the positive sensor index offset λ offsetThe encoding (decoding) of can be completed (λ offset,2 =0).

[0159] In step 350, λ offset,1 =N sensor -λ ref If , the second positive value λ offset,2 can be encoded into (and decoded from) bitstream B (step 360).

[0160] In one variation, the first positive offset is a positive sensor index offset λ offset , and in step 350, λ offset,1 =N sensor -λ ref If λ, then encode the first positive offset into (decode from) bitstream B (step 310). offset,1 <N sensor -λ ref , the first positive offset is considered equal to zero.

[0161] In one variation, λ offset,1 =N sensor -λ ref If the first positive value λ offset,1 has already been encoded, but the second positive value λ offset,2 A first positive offset may be coded into (decoded from) bitstream B (step 310) before is coded, ie after step 350 and before step 360.

[0162] In one variation, a positive sensor index offset λ offset The number of sensors N sensor may be limited to be lower than

[0163] In one embodiment of step 330, a positive offset λ is added based on the selection of the self-adaptive context. offset,1 can be entropy coded (decoded).

[0164] In one variant, a positive offset λ offset,1 For example, a positive offset λ offset,1 To obtain a unary representation of binary data b k4 (where k4 ranges from 0 to λ offset,1 Each binary data b k4 is entropy coded using the context. k4 The sequence is entropy decoded and the resulting binary data b k4 A positive offset λ from the sequence offset,1 Reconstruct.

[0165] In one variant, a positive offset λ offset,1 is a positive offset λ offset,1 To obtain a unary representation of binary data b k4 can be binarized as a sequence of λ offset,1 =N sensor -λ ref In the case of , k4 is 0 to λ offset,1 -1: the last bit of a unary expression may be omitted, which is the positive offset λ offset,1 Because higher values ​​of are not possible / allowed.

[0166] In one variant, the sensor index λ ref +k4. Or in a variant, the context can be selected based on the sensor index λ ref + Select the context based on the index of the sensor index group that k4 is in.

[0167] In one variant, the previously (decoded) occupied rough points P i Data S indicating whether or not is a late-occupied rough point next,i A context can be further selected based on the occupied coarse point P i is associated with a previously (decoded) point of the point cloud, for which the occupied coarse points Pi is the sensor index λ ref or in a variant, the sensor index λ ref The second reference coarse point P' belongs to a sensor index group that includes ref(i) The sensor index associated with the order index of the late point order index difference P' ref(i) is used in the calculation of

[0168] In a variant, the context may further be selected based on a function of k4.

[0169] For example, this function may be equal to min(k4,2).

[0170] In one embodiment of step 360, a positive offset λ is calculated based on the selection of the self-adaptive context. offset,2 can be entropy coded (decoded).

[0171] In one variant, a positive offset λ offset,2 For example, a positive offset λ offset,2 To obtain a unary representation of binary data b k5 (where k5 ranges from 0 to λ offset,2 Each binary data b k5 is entropy coded using the context. k5 The sequence is entropy decoded and the resulting binary data b k5 A positive offset λ from the sequence offset,2 Reconstruct.

[0172] In one variant, the previously (decoded) occupied rough points P i Data S indicating whether or not is a late-occupied rough point next,i The context can be further selected based on the occupied coarse point P i is associated with a previously encoded (decoded) point phase of the point cloud, and for this point cloud, the occupied coarse point Pi is the sensor index λ ref or in a variant, the sensor index λ ref The second reference coarse point P' belongs to a sensor index group that includes ref(i) The sensor index associated with the order index of the late point order index difference Δo late(i) is used in the calculation of

[0173] In one variant, the context can further be selected based on a function of j.

[0174] For example, this function is min(λ offset,2 +k5,2).

[0175] In one variation, λ offset,1 The context table for encoding is λ offset,2 may be used to encode

[0176] Figure 18 shows the next occupied rough point P next s ref Sample index s equal to -1 next If the first positive offset s offset and a positive value λ offset,2 Here, we present an example of determining ref is the second reference coarse point P' ref the sample index of the second reference coarse point P' ref The sensor index λ ref A sensor index λ greater than next has.

[0177] In the illustrative example, λ offset,1 ≦N sensor -λ ref (Step 340). Then, a second positive value λ offset,2 is determined to be equal to 0, and the first positive offset s offset is also determined to be equal to 0.

[0178] In this example, the first positive value λ to be encoded (decoded) is offset,1 is greater than 0 (λ next >λ ref ). Equation (8) is a positive sample index offset s offset = 0 and the order index difference Δo are given.

[0179] Figure 19 shows the next occupied rough point P next and a second reference coarse point P' ref have the same sample index, the first positive offset s offset and a positive value λ offset,2 The following shows an example of determining the sample index offset s offset is equal to 0.

[0180] In the illustrative example, λ offset,1 =N sensor -λ ref (Step 350). Then, a second positive value λ offset,2 into the bitstream B. offset =0, and the order index difference Δo is given by equation (8).

[0181] Figure 20 shows the next occupied rough point P next s ref Sample index s equal to -2 next If the first positive offset s offset and a positive value λ offset,2 Here, we present an example of determining ref is the second reference coarse point P' ref is the sample index of

[0182] In the illustrative example, λ offset,1 =N sensor -λ last (Step 350). Then, a second positive value λ offset,2 into the bitstream B. offset is equal to 2, and the order index difference Δo is given by equation (8).

[0183] FIG. 21 shows an exemplary schematic block diagram for implementing the system of each aspect and embodiment.

[0184] System 400 may be implemented as one or more devices and may include various components, as described below. In various embodiments, system 400 may be configured to implement one or more aspects described herein.

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

[0186] The system 400 includes at least one processor 410 configured to execute instructions loaded therein to, for example, implement aspects described herein. The processor 410 may include embedded memory, input / output interfaces, and various other circuits known in the art. The system 400 may include at least one memory 420 (e.g., volatile and / or non-volatile memory devices). The system 400 may include a storage device 440 including non-volatile and / or volatile memory, including, but not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Read-Only Memory (ROM), Programmable Read-Only Memory (PROM), Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Flash memory, magnetic disk drives, and / or optical disk drives. As non-limiting examples, the storage device 440 may include an internal storage device, an additional storage device, and / or a network-accessible storage device.

[0187] The system 400 may include an encoder / decoder module 430 configured to process data to provide encoded / decoded point cloud geometry shape data, for example, and the encoder / decoder module 430 may include its own processor and memory. The encoder / decoder module 430 may represent a module(s) included in a device to perform encoding and / or decoding functions. As is known, a device may include either one or both of an encoding and decoding module. Also, the encoder / decoder module 430 may be implemented as a separate element of the system 400 or may be coupled within the processor 410 as a combination of hardware and software known to those skilled in the art.

[0188] Program code loaded into the processor 410 or the encoder / decoder 430 to perform aspects described herein may be stored in the storage device 440 and subsequently loaded into the memory 420 and executed by the processor 410. According to various embodiments, during execution of processes described herein, one or more of the processor 410, the memory 420, the storage device 440, and the encoder / decoder module 430 may store one or more of the following items: point cloud frames, encoded / decoded geometry shapes / attributes videos / images or portions of encoded / decoded geometry shapes / attributes videos / images, bitstreams, matrices, variables, and expressions, formulas, logic for operations or intermediate or final results of operations.

[0189] In some embodiments, memory within the processor 410 and / or the encoder / decoder module 430 may be used to store instructions and provide working memory for processes performed during encoding or decoding.

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

[0191] As indicated in block 490, inputs can be provided to the elements of system 400 via various input devices. Such input devices include, but are not limited to, (i) an RF section capable of receiving RF signals transmitted wirelessly from a broadcast station or the like, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.

[0192] In various embodiments, the input devices of block 490 have associated corresponding input processing elements as known in the art. For example, the RF section may be associated with each of the following required elements: (i) selecting a desired frequency (also called signal selection, or limiting the signal within a frequency band), (ii) downconverting the selected signal, (iii) selecting a signal frequency band by controlling the frequency band back to a narrow frequency band, (for example) referred to as a channel in some embodiments, (iv) demodulating the downconverted and frequency band limited signals, (v) performing error correction, and (vi) demultiplexing to select a desired data packet flow. The RF section of various embodiments includes elements purposely performing these functions, such as frequency selectors, signal selectors, frequency band limiters, channel selectors, filters, downconverters, demodulators, error correction devices, and demultiplexers. The RF section may include a tuner performing each of these functions, including, for example, downconverting a received signal to a lower frequency (e.g., an intermediate frequency or a frequency near baseband) or to baseband.

[0193] In one set-top box embodiment, the RF section and its associated input processing elements can receive RF signals transmitted over a wired (e.g., cable) medium, after which the RF section can perform frequency selection by filtering, down-converting, and re-filtering to obtain a desired frequency band.

[0194] In various embodiments, the order of these (and other) elements may be rearranged, some of these elements may be eliminated, and / or other elements that perform similar or different functions may be added.

[0195] Adding elements can include inserting elements such as amplifiers and analog-to-digital converters between existing elements, In various embodiments, the RF section can include an antenna.

[0196] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 400 to other electronic devices via USB and / or HDMI connections. It should be noted that aspects of the input processing (e.g., Reed-Solomon error correction) may be implemented, for example, in a separate input processing IC or in the processor 410, when desired. Thus, it should be understood that aspects of the USB or HDMI interface processing may be implemented, when desired, in a separate interface IC or in the processor 410. Upon demodulation, the error corrected and demultiplexed stream may be provided to various processing elements, including the processor 410 and the encoder / decoder 430, which operates in conjunction with memory and storage elements, to process the data stream when desired for display on an output device.

[0197] The various elements of the system 4000 may be provided within a unitary housing, where a suitable connection layout 440 (e.g., internal buses known in the art, including I2C buses, wires, and printed circuit boards) may be used to connect the elements together and transmit data between them.

[0198] System 400 may include a communication interface 450 such that it can communicate with other devices over a communication channel 800. Communication interface 450 includes, but is not limited to, a transceiver configured to transmit and receive data over communication channel 800. Communication interface 450 may include, but is not limited to, a modem or a network card, and communication channel 800 may be implemented within a wired and / or wireless medium, for example.

[0199] In various embodiments, a Wi-Fi network, such as IEEE 802.11, may be used to stream data to the system 400. The Wi-Fi signal in these embodiments may be received via a communication channel 800 suitable for Wi-Fi communication and a communication interface 450. The communication channel 800 in these embodiments may typically be connected to an access point or router that provides access to external networks, including the Internet, allowing streaming applications and other over-the-top wireless communications.

[0200] Other embodiments may provide streaming data to the system 400 using a set-top box, which carries the data through an HDMI connection in the input block 490 .

[0201] In some embodiments, the RF connection of input block 490 is used to provide streaming data to system 400 .

[0202] Streaming data can be used as a form of signaling information used by the system 400. The signaling information can include information on the number of points, coordinates, and / or sensor configuration parameters, such as a bitstream B and / or a point cloud.

[0203] It should be noted that signaling can be achieved in various manners, for example, in various embodiments, one or more syntax elements, flags, etc. can be used to transmit signaling information to a corresponding decoder.

[0204] System 400 can provide output signals to a variety of output devices, including a display 500, speakers 600, and other peripherals 700. In various example embodiments, other peripherals 700 can include one or more of a separate DVR, disc player, stereo system, lighting system, and other devices that provide functionality based on the output of system 400.

[0205] In various embodiments, control signals may be communicated between system 400 and display 500, speaker 600 or other peripherals 700 using AV.Link (Audio / Video Link), CEC (Consumer Electronics Control) or other communication protocol signaling enabling device-to-device control, with or without a user.

[0206] Output devices can be communicatively connected to the system 400 via dedicated connections by corresponding interfaces 460, 470 and 480.

[0207] Optionally, an output device can be connected to the system 400 using a communication channel 800 via the communication interface 450. The display 500 and the speakers 600 can be integrated into a single unit along with other components of the system 400 such as an electronic device (e.g., a television).

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

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

[0210] 1-21, various methods are described herein, each of which includes one or more steps or actions to achieve the described method. To the extent that a specific order of steps or actions is not required for the precise operation of the method, the order and / or use of specific steps and / or actions can be modified or combined.

[0211] Although some examples have been described with respect to block diagrams and / or operational flow charts, each block represents a circuit element, a module, or a portion including one or more executable instruction codes for implementing a specified logic function(s). It should be noted that in other embodiments, the function(s) shown in the blocks may not occur in the order shown. For example, two blocks shown one after the other may in fact be executed essentially in parallel, or the blocks may be executed in the reverse order, depending on the functions involved.

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

[0213] The methods may be implemented, for example, in a processor, which generally refers to a processing device including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device, etc. Processors further include communication devices.

[0214] Also, the methods may be implemented with instructions executed by a processor, and such instructions (and / or data values ​​produced by the embodiments) may be stored in a computer-readable storage medium. A computer-readable storage medium may take the form of a computer-readable program product having computer-readable program code embodied in and executable by a computer, embodied in one or more computer-readable media. Given the inherent ability to store information thereon and retrieve information provided thereby, a computer-readable storage medium as used herein may be considered a non-transitory storage medium. A computer-readable storage medium may be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. In addition, the following provides more specific examples of computer-readable storage media to which the present embodiment can be applied, but it should be understood that these are merely illustrative and not an exhaustive list, as one of ordinary skill in the art would readily recognize: portable computer floppy disks, hard disks, read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0215] The instructions may create an application tangibly embodied on a processor-readable medium.

[0216] For example, instructions may reside in hardware, firmware, software, or a combination thereof. For example, instructions may be found in an operating system, a separate application, or a combination of both. A processor may thus be characterized as, for example, a device configured to perform a process or a device that includes a processor-readable medium (e.g., a storage device) having instructions for performing a process. Additionally, in addition to or in lieu of instructions, the processor-readable medium may store data values ​​produced by an embodiment.

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

[0218] The computer software may be implemented in the processor 410, hardware, or a combination of hardware and software. As a non-limiting example, an embodiment may be implemented in one or more integrated circuits. The memory 420 may be of any type suitable for the technology environment and may be implemented in any suitable data storage technology (as a non-limiting example, for example, optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memories, and removable memories). As a non-limiting example, the processor 410 may be of any type suitable for the technology environment and may cover one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture.

[0219] As will be apparent to one skilled in the art, the embodiments can generate various signals shaped to carry, for example, storable or transmittable information. The information can include, for example, instructions for performing a method or data generated by one of the described embodiments. For example, the signal can be shaped to carry a bit stream of the described embodiments. The signal can be shaped, for example, into an electromagnetic wave (e.g., a radio frequency portion of the frequency spectrum) or a baseband signal. The shaping can include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal can be, for example, analog or digital information. As is well known, the signal can be transmitted over different wired or wireless links. The signal can be stored in a processor readable medium.

[0220] The terms used herein are used only to describe particular embodiments and are not intended to be limiting. Unless the context clearly dictates otherwise, the singular forms "a," "an," and "the" as used herein include the plural forms. Furthermore, as used herein, the terms "include / comprise" and / or "including / comprising" may indicate the presence of a described feature, integer, step, operation, element, and / or component, etc., but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof. Also, when an element is said to be "responsive to" or "connected" to another element, it may be directly responsive to or connected to the other element, or intermediate elements may be present. Conversely, when an element is said to be "directly responsive to" or "directly connected" to another element, intermediate elements are not present.

[0221] For example, in the case of "A / B," "A and / or B," and "at least one of A and B," the use of any one of the symbols / terms " / ," "and / or," and "at least one of" is intended to cover the selection of the first listed option (A), or the selection of the second listed option (B), or the selection of two options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C," such language is intended to cover only the selection of the first listed option (A), or only the selection of the second listed option (B), or only the selection of the third listed option (C), or only the selection of the first and second listed options (A and B), or only the selection of the first and third listed options (A and C), or only the selection of the second and third listed options (B and C), or all three options (A, B, and C). This can be extended to any number of listed items as would be apparent to one of skill in the art.

[0222] Various numerical values ​​may be used in this application, and the specific values ​​are exemplary, and the embodiments described are not limited to these specific values.

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

[0224] References to "one example" or "example" or "one embodiment" or "embodiment" and other variations are often used to convey that a particular feature, structure, characteristic, etc. (as described in conjunction with the example / embodiment) is included in at least one example / embodiment. Thus, appearances of the terms "in one example" or "in an example" or "in some examples" or "in one embodiment" or "in an embodiment" and any other variations appearing in various places in this application are not necessarily all referring to the same example.

[0225] Similarly, references herein to "according to an embodiment" or "in an embodiment" and other variations are often used to convey that a particular feature, structure, or characteristic (as described in conjunction with an embodiment) may be included in at least one embodiment. Thus, the phrases "according to an embodiment" or "in an embodiment" appearing in various places in the specification do not necessarily refer to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.

[0226] The reference numerals of the drawings appearing in the claims are used for explanation only and do not limit the scope of the claims. Although not explicitly described, the present embodiment / examples and modifications can be used in any combination or partial combination.

[0227] It is understood that when a figure is presented as a flow chart, a corresponding apparatus block diagram is also provided. Similarly, it is understood that when a figure is presented as a block diagram, a flow chart of the corresponding method / process is also provided.

[0228] Some figures include arrows that indicate a primary direction of communication in a communication path, however, it should be understood that communication can occur in a direction opposite to that of the illustrated arrow.

[0229] Various embodiments relate to decoding. As used herein, "decoding" may cover all or part of a process, such as performing a received point cloud frame (which may include a received bitstream encoding one or more point cloud frames) to generate a final output suitable for display or further processing in a reconstructed point cloud domain. In various embodiments, such a process may include one or more of the processes typically performed by a decoder. In various embodiments, for example, such a process may alternatively include a process performed by a decoder of various embodiments described herein.

[0230] As a further example, in one embodiment, "decoding" may refer to only inverse quantization, in one embodiment, "decoding" may refer to entropy decoding, in another embodiment, "decoding" may refer to differential decoding, and in another embodiment, "decoding" may refer to a combination of inverse quantization, entropy decoding, and differential decoding. Depending on the context specifically described, it is obvious and easy to understand for one skilled in the art whether the term "decoding process" refers specifically to a subset of operations or to a more general decoding process.

[0231] Various embodiments relate to encoding. As at least in the manner of the above discussion of "decoding," "encoding" as used herein may cover all or part of the process of, for example, executing an input point cloud frame to generate an encoding bitstream. In various embodiments, this type of process includes one or more of the processes typically performed by an encoder. In various embodiments, such processes may include, or may selectively include, the processes performed by the encoder of each embodiment described herein.

[0232] As a further example, in one embodiment, "encoding" may refer only to quantization, in one embodiment, "encoding" may refer only to entropy coding, in another embodiment, "encoding" may refer only to differential coding, and in another embodiment, "encoding" may refer to a combination of quantization, differential coding, and entropy coding. Depending on the context in which a particular description is made, it may be clear and easy to understand for one of ordinary skill in the art whether the term "encoding process" refers specifically to a subset of operations or to a more general encoding process.

[0233] Additionally, the application may refer to "obtaining" various pieces of information. Obtaining information may include one or more of estimating information, calculating information, predicting information, or looking up information from a memory.

[0234] Additionally, the application may refer to "accessing" various pieces of information, which may include one or more of receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.

[0235] The application may also refer to "receiving" various information. Like "access," receiving is intended to be a broad term. Receiving information may include, for example, one or more of accessing information or retrieving information (e.g., from a memory). In another manner, terms of operations such as storing information, processing information, transmitting information, moving information, copying information, deleting information, calculating information, determining information, predicting information, or estimating information are typically associated with "receiving."

[0236] Moreover, as used herein, the term "signal" specifically refers to instructing a corresponding decoder to do something specific. For example, in some embodiments, an encoder transmits a signal to inform a specific piece of information, such as the number or coordinates of points in a point cloud or sensor setting parameters. In this manner, the same parameters can be used at the encoder side and the decoder side in some embodiments. Thus, for example, the encoder can transmit a specific parameter to the decoder (explicit signaling), so that the decoder can use the same specific parameter. Conversely, if the decoder has a specific parameter and another parameter, signaling that does not require transmission (indirect signaling) can be used to inform the decoder and facilitate the selection of the specific parameter. To avoid transmitting any actual function, bit savings are achieved in various embodiments. It should be appreciated that signaling can be accomplished in various ways. For example, in various embodiments, one or more grammatical elements, flags, etc. are used to transmit information to a corresponding decoder. Although the above relates to the verb form of the word "signal", the word "signal" may also be used as a noun in this specification.

[0237] Although several embodiments have been described above, it should be understood that various modifications may be made. For example, elements of different embodiments may be combined, supplemented, modified, or deleted to produce other embodiments. Also, as will be appreciated by those skilled in the art, other structures and processes may be substituted for the disclosed structures and processes, resulting in embodiments that perform essentially the same function(s) in essentially the same way(s) to achieve at least essentially the same result(s) as the disclosed embodiments. Accordingly, these and other embodiments are contemplated by the present application.

Claims

1. 1. A method of encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the method comprising: - the occupied coarse points associated with the points of the point cloud (P next ) is a late occupied rough point or not (S next ) into the bitstream, wherein an order index in the lexicographic order of an occupied coarse point is associated with a previously coded point of the point cloud by a first reference coarse point (P ref ), the occupied coarse point is assigned to a later occupied coarse point (P next ) and - the data (S next ) when the occupied rough point is a later occupied rough point (P next ) The late occupied rough points (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) and and encoding the amplitude of the late point order index difference into the bitstream. A method for encoding point cloud geometry data, represented by ordered coarse points occupying several discrete locations of a set of discrete locations in two-dimensional space, into a bitstream.

2. 1. A method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the method comprising: - from the bitstream, the occupied coarse points (P next ) is a late occupied rough point or not (S next ), by decoding a first reference coarse point (P) whose order in the lexicographic order of the occupied coarse points is associated with a previously decoded point of the point cloud; ref ), the occupied coarse point is replaced by a later occupied coarse point (P next ) and - the data (S next ) when the occupied rough point is a later occupied rough point (P next ), then, from the bitstream, next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) decoding the amplitude of A method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space from a bitstream.

3. The first reference coarse point (P ref ) is the last occupied coarse point (P last ), or the previously encoded or decoded occupied rough point (P high ), and said second reference coarse point (P' ref ) is the first reference coarse point or is a coarse point associated with an order equal to the order of the first reference coarse point shifted by an offset, The method according to claim 1 or 2.

4. The data (S next ) is the occupied coarse point (P next ) is binary data indicating whether or not the first occupied coarse point is a late occupied coarse point, and at least one other binary data (S next,i ) based on The data (S next ) entropy encoding or entropy decoding, The method according to claim 1 or 2.

5. the amplitude of the late point order index difference is encoded by encoding two positive offsets associated with the coordinate in the two-dimensional space into the bitstream, or the amplitude of the late point order index difference is decoded by decoding two positive offsets associated with the coordinate in the two-dimensional space from the bitstream, the two positive offsets including a first positive offset associated with a first coordinate in the two-dimensional space and a second positive offset (λ offset ) associated with a second coordinate in the two-dimensional space. The method according to claim 4.

6. The second positive offset (λ offset ) is encoded or decoded such that the sum is equal to or smaller than the second positive offset (λ offset A first positive value (λ offset,1 ) and a second positive value (λ offset,2 ) encoding or decoding the The method according to claim 5.

7. encoding or decoding the first positive value or the second positive value comprises entropy encoding or entropy decoding a sequence of binary data representing the first positive value or the second positive value. The method according to claim 6.

8. encoding or decoding the first positive offset includes entropy encoding or entropy decoding a sequence of binary data representing the first positive offset, the first positive offset being φ offset or s offset . The method according to claim 6.

9. 1. An apparatus for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the apparatus comprising at least one processor, the at least one processor comprising: - the occupied coarse points associated with the points of the point cloud (P next ) is a late occupied rough point or not (S next ) into the bitstream, and a first reference coarse point (P ref ), the occupied coarse point is assigned to a later occupied coarse point (P next ) is considered to be - the data (S next ) when the occupied rough point is a later occupied rough point (P next ) The late occupied rough points (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) and configured to encode the magnitude of the late point order index difference into the bitstream. An apparatus for encoding point cloud geometry data, represented by ordered coarse points occupying some discrete locations of a set of discrete locations in two-dimensional space, into a bitstream.

10. 1. An apparatus for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the ordered coarse points being ordered based on a lexicographic order based on coordinates in the two-dimensional space, the apparatus comprising at least one processor, the at least one processor comprising: - from the bitstream, the occupied coarse points (P next ) is a late occupied rough point or not (S next ) and find a first reference coarse point (P) whose order in the lexicographic order of the occupied coarse point is associated with a previously decoded point of the point cloud. ref ), the occupied coarse point is replaced by a later occupied coarse point (P next ) is considered to be - the data (S next ) when the occupied rough point is a later occupied rough point (P next ), then, from the bitstream, the late occupied coarse point (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) , An apparatus for decoding point cloud geometry data represented by ordered coarse points occupying some discrete locations of a set of discrete locations in a two-dimensional space from a bitstream.

11. A computer program, which when executed by one or more processors, causes the one or more processors to perform a method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space into a bitstream, the ordered coarse points being ordered based on a lexicographic order based on coordinates in the two-dimensional space, the method comprising: teeth, - the occupied coarse points associated with the points of the point cloud (P next ) is a late occupied rough point or not (S next ) into the bitstream, wherein an order index in the lexicographic order of an occupied coarse point is associated with a previously coded point of the point cloud by a first reference coarse point (P ref ), the occupied coarse point is assigned to a later occupied coarse point (P next ) and - the data (S next ) when the occupied rough point is a later occupied rough point (P next ) The late occupied rough points (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) and and encoding the amplitude of the late point order index difference into the bitstream. Computer program.

12. A non-transitory storage medium carrying program code instructions for executing a method for encoding point cloud geometry data represented by ordered coarse points occupying several discrete locations of a set of discrete locations in a two-dimensional space into a bitstream, the ordered coarse points being ordered based on a lexicographical order based on coordinates in the two-dimensional space, the method comprising: - the occupied coarse points associated with the points of the point cloud (P next ) is a late occupied rough point or not (S next ) into the bitstream, wherein an order index in the lexicographic order of an occupied coarse point is associated with a previously coded point of the point cloud by a first reference coarse point (P ref ), the occupied coarse point is assigned to a later occupied coarse point (P next ) and - the data (S next ) is the occupied rough point is the later occupied rough point (P next ) The late occupied rough points (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) and and encoding the amplitude of the late point order index difference into the bitstream. Non-transitory storage media.

13. A computer program, when executed by one or more processors, causing the one or more processors to perform a method for decoding, from a bitstream, point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space, the ordered coarse points being ordered based on a lexicographic order based on coordinates in the two-dimensional space, the method comprising: - from the bitstream, the occupied coarse points (P next ) is a late occupied rough point or not (S next ), by decoding a first reference coarse point (P) whose order in the lexicographic order of the occupied coarse points is associated with a previously decoded point of the point cloud; ref ), the occupied coarse point is replaced by a later occupied coarse point (P next ) and - the data (S next ) when the occupied rough point is a later occupied rough point (P next ) from the bitstream, Point (P next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) decoding the amplitude of Computer program.

14. A non-transitory storage medium carrying program code instructions for executing a method for decoding point cloud geometry data represented by ordered coarse points occupying several discrete positions of a set of discrete positions in a two-dimensional space from a bitstream, the ordered coarse points being ordered based on a lexicographic order based on coordinates in the two-dimensional space, the method comprising: - from the bitstream, the occupied coarse points (P next ) is a late occupied rough point or not (S next ), by decoding a first reference coarse point (P) whose order in the lexicographic order of the occupied coarse points is associated with a previously decoded point of the point cloud; ref ), the occupied coarse point is replaced by a later occupied coarse point (P next ) and - the data (S next ) when the occupied rough point is a later occupied rough point (P next ), then, from the bitstream, next ) and the order index of the second reference coarse point (P' ref ) the order index difference between the late point order index (Δo late ) decoding the amplitude of Non-transitory storage media.

Citation Information

Patent Citations

  • System and method for ordered representation and feature extraction for point clouds obtained by detection and ranging sensor

    US20200302237A1

  • Method and apparatus for point cloud compression

    US20200394822A1

  • Methods and devices for entropy coding point clouds

    US20210004992A1

  • Coding of laser angles for angular and azimuthal modes in geometry-based point cloud compression

    US20210326734A1

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

    WO2021084293A1