Method and apparatus for encoding / reconstructing attributes of points of point cloud

By subdividing the bounding box of point cloud points and encoding point properties according to sub-parts, the problem of poor point cloud compression efficiency and quality in the prior art is solved, and efficient lossless encoding of point clouds is achieved.

CN119484868APending Publication Date: 2025-02-18INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411671502.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-03-14
Filing Date
2019-10-04
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

Existing image-based point cloud compression techniques exhibit problems with low compression efficiency or poor quality when point cloud distributions are not suitable for projection onto images, especially when point distributions follow surfaces with many folds or do not follow surfaces.

Method used

By subdividing the bounding box of a point cloud into multiple subsections, encoding its attribute data according to the subsection to which the point belongs, and encoding the number of points included in each subsection, thereby reducing the representation of point attributes The number of bits required.

Benefits of technology

This method allows lossless encoding of point clouds of any size, independent of the bit depth of the video TMC2 point cloud encoder, improving the efficiency and quality of point cloud compression.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119484868A_ABST
    Figure CN119484868A_ABST
Patent Text Reader

Abstract

A method and apparatus for encoding / reconstructing attributes of points of a point cloud are provided. The coding method comprises the following steps: subdividing a bounding box defining a point to be coded, and coding data representing the attribute of the point through a sub-part to which a reference point belongs; and encoding data representing the number of points included in each sub-portion.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of Chinese patent application No. 201980065591.1, filed on October 4, 2019, entitled “A method and device for encoding / reconstructing attributes of points in a point cloud”, and the contents of the parent application are introduced herein. Technical Field

[0002] The present embodiment mainly relates to the encoding and reconstruction of points of a point cloud. In particular, but not exclusively, the technical field of the present embodiment relates to the encoding / reconstruction of a point cloud representing the outer surface of a 3D object. Background Art

[0003] This section is intended to introduce the reader to various aspects of the technology that may be related to various aspects of the embodiments of the present invention described and / or claimed below. It is believed that this discussion is helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present embodiments. Therefore, it should be understood that these statements should be read in this context and not as admissions of prior art.

[0004] A point cloud is a set of points (data points) in a certain coordinate system. In a three-dimensional coordinate system (3D space), these points are usually intended to represent the outer surface of a 3D object. Each point of a point cloud is usually defined by its position (X, Y and Z coordinates in 3D space) and possibly by other related properties, such as color (in, for example, RGB or YUV color space), transparency, reflectivity, a two-component normal vector, etc.

[0005] A point cloud is usually represented as a set of 6-component points (X,Y,Z,R,G,B) or equivalently (X,Y,Z,Y,U,V), where (X,Y,Z) define the coordinates of a color point in 3D space and (R,G,B) or (Y,U,V) define the color of that color point.

[0006] A point cloud can be static or dynamic, depending on whether the cloud evolves with respect to time. It should be noted that in the case of a dynamic point cloud, the number of points is not constant, but on the contrary, usually evolves with time. Therefore, a dynamic point cloud is a time-ordered list of a set of points.

[0007] In fact, point clouds can be used for various purposes, such as cultural heritage / architecture, where objects like statues or buildings are scanned in 3D in order to share the spatial configuration of the object without sending or accessing it. Moreover, this is a way to ensure that knowledge about the object is preserved in the event that the object may be destroyed (such as a temple destroyed by an earthquake). Such point clouds are usually static, colored and huge.

[0008] Another use case is in topographic maps and cartography using 3D representations, where the maps are not limited to flat surfaces and can contain undulations. Google Maps is now a good example of a 3D map, but uses a grid instead of a point cloud. However, a point cloud can be a suitable data format for a 3D map, and such a point cloud is usually static, colored, and large.

[0009] The automotive industry and autonomous vehicles are also areas where point clouds can be used. Autonomous vehicles should be able to "probe" their environment to make good driving decisions based on the reality in their immediate vicinity. Typical sensors like LIDAR produce dynamic point clouds that are used by decision engines. These point clouds are not intended to be viewed by humans, and they are usually small, not necessarily colored, and dynamic, with a high capture frequency. They can have other properties such as reflectivity provided by LIDAR, as this property is good information about the material of the sensed object and can help make said decisions.

[0010] Virtual reality and immersive worlds have become a hot topic lately and are foreseen by many as the future of 2D flat video. The basic idea is to immerse the viewer in the environment around him, as opposed to standard TV where the viewer can only see the virtual world in front of him. There are several levels in the immersion, depending on the degree of freedom the viewer has in the environment. Colored point clouds are a good format candidate for distributing virtual reality (or VR) worlds. They can be static or dynamic and are usually of average size, such as no more than millions of points at a time.

[0011] Point cloud compression will successfully store / transmit 3D objects for immersive worlds only if the size of the bitstream is low enough to allow practical storage / transmission to the end user.

[0012] It is crucial to be able to distribute dynamic point clouds to end users with reasonable consumption of bit rate while maintaining acceptable (or preferably very good) quality of experience. In order to make the distribution chain of immersive worlds feasible, efficient compression of these dynamic point clouds is a key point.

[0013] Image-based point cloud compression techniques are becoming increasingly popular due to their combination of compression efficiency and low complexity. They proceed in two main steps: First, they project (orthogonally project) a point cloud (i.e., points) onto a 2D image that represents the attributes associated with the points of the point cloud. For example, at least one geometry image represents the geometry of the point cloud, i.e., the spatial coordinates of the points in 3D space, and at least one attribute image represents the attributes associated with the points of the point cloud, such as texture / color information associated with those points. Next, these techniques encode such depth and attribute images with a conventional video encoder.

[0014] Image-based point cloud compression techniques achieve good compression performance by leveraging the capabilities of 2D video encoders, such as HEVC ("ITU-T H.265 Telecommunication standardization sector of ITU (10 / 2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services-coding of moving video, High efficiency video coding, Recommendation ITU-T H.265"), while they keep the complexity low by using a simple projection scheme.

[0015] One of the challenges of image-based point cloud compression techniques is that the point cloud may not be suitable for projection onto an image, especially when the point distribution follows a surface with many wrinkles (concave / convex areas, such as in clothing) or when the point distribution does not follow the surface at all (such as in fur or hair). In these cases, image-based point cloud compression techniques suffer from low compression efficiency (requiring many small projections, thereby reducing the efficiency of 2D video compression) or poor quality (due to the difficulty of projecting the point cloud onto the surface).

[0016] One of the methods used in the prior art to alleviate this problem is to project multiple geometric shapes and texture information onto the same spatial position (pixel) of the image. This means that several geometric and / or attribute images can be generated for each point of the point cloud.

[0017] This is the case, for example, in the so-called Test Model Type 2 Point Cloud Coder (TMC2) defined in ISO / IEC JTC1 / SC29 / WG11 MPEG2018 / N17767, Ljubljana, July 2018 (Annex A).

[0018] In TMC2, the point cloud is orthogonally projected onto a projection plane. For each coordinate of the projection plane, two depth values ​​are therefore associated: one represents the depth value associated with the nearest point (minimum depth value), and the other represents the depth value of the farthest point (maximum depth value). Then, a first geometric image is generated from the minimum depth value (D0), and a second geometric image is generated from the absolute value of the maximum depth value (D1), where D1-D0 is less than or equal to the maximum surface thickness. A first and a second attribute image associated with the first (D0) and second (D1) geometric images are also generated. The attribute image and the geometric image are then encoded and decoded using any conventional video codec such as HEVC. Therefore, the geometry of the point cloud is reconstructed by deprojecting the decoded first and second geometric images, and other attributes associated with the points of the reconstructed point cloud are obtained through the decoded attribute images. Summary of the invention

[0019] A simplified overview of an embodiment of the present invention is provided below to provide a basic understanding of some aspects of an embodiment of the present invention. This overview is not an extensive review of the present embodiment. It is not intended to identify the key or important elements of the present embodiment. The following overview only presents some aspects of the present embodiment in a simplified form as a preface to the more detailed description provided below.

[0020] Embodiments of the present invention are proposed to make up for at least one deficiency of the prior art by using a method, the method comprising:

[0021] – Subdividing the bounding box that defines the points of the point cloud into multiple subdivisions;

[0022] - encoding data representative of properties of a point by reference to the subpart to which the point belongs of said point cloud; and

[0023] - Encode data representing the number of points included in each sub-part.

[0024] According to an embodiment, the method further comprises obtaining a single 2D patch of the image, said patch comprising data representing said properties of said points.

[0025] According to an embodiment, the method further comprises: obtaining a 2D patch for a sub-portion when the sub-portion comprises at least one of the points.

[0026] According to an embodiment, the sub-portion of the bounding box depends on the bit depth of the encoder used to encode the point.

[0027] According to an embodiment, the attribute of a point corresponds to geometric shape or texture / color information of the point.

[0028] According to an embodiment, the points are obtained by comparing points of an input point cloud with points of a reconstructed point cloud, the reconstructed point cloud being obtained by the following steps:

[0029] - obtaining at least one geometric and attribute image by projecting some points of the input point cloud onto a projection plane;

[0030] - encoding the at least one geometry and attribute image; and

[0031] - reconstructing points of said reconstructed point cloud by decoding said at least one geometry and attribute image.

[0032] According to another aspect of the present invention, at least one embodiment of the present invention relates to a method, the method comprising:

[0033] - decoding data representative of an attribute of a point of a point cloud by reference to a sub-portion to which the point belongs, said sub-portion being one of a plurality of sub-portions obtained by segmenting a bounding box delimiting said point of said point cloud; and

[0034] - decoding data representing the number of points included in each sub-portion of the bounding box; and

[0035] – Reconstruct the properties of the points from the decoded data.

[0036] According to an embodiment, the attributes of the points are reconstructed from the decoded data by decoding at least one geometry and attribute image, the decoded data reconstructing the points of the reconstructed point cloud.

[0037] According to an embodiment, reconstructing the attributes of the point further comprises: obtaining a 2D patch for the sub-portion from the decoded geometric image, and obtaining the 3D coordinates of the point from the coordinates of the pixel values ​​obtained from the 2D patch and the coordinates of a reference point of the 2D patch.

[0038] According to an embodiment, the method further comprises: when a sub-portion includes at least one of the points, obtaining a 2D patch of the sub-portion.

[0039] According to an embodiment, said sub-portion of said bounding box depends on the bit depth of a decoder used to decode said point.

[0040] According to one embodiment, the attributes of a point correspond to the geometric shape or texture / color information of the point.

[0041] According to other aspects of the invention, embodiments of the invention relate to an apparatus, a bitstream, a computer program product, and a non-transitory readable medium.

[0042] The specific nature of embodiments of the present invention as well as other objects, advantages, features and uses of embodiments of the present invention will become apparent from the following example description taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] In the accompanying drawings, an example of this embodiment is shown. It shows:

[0044] – Figure 1 A diagram schematically shows steps of a method 100 for encoding attributes of points of a point cloud according to an example of the present embodiment;

[0045] – Figure 2 A diagram schematically shows steps of a method 200 for decoding data representing a point cloud from a bit stream according to an example of the present embodiment;

[0046] – Figure 3 Two remote devices communicating over a communication network according to an example of the present embodiment are shown;

[0047] – Figure 4 shows the syntax of a signal according to an example of the present embodiment;

[0048] – Figure 5-10 shows an example of a syntax element for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment; and

[0049] – Fig.11 A block diagram showing an example of a system implementing various aspects and embodiments according to an example of an embodiment of the present invention is shown.

[0050] Similar or identical elements are denoted by the same reference numerals.

[0051] Description of Embodiments of the Invention

[0052] The present invention will be described more fully below with reference to the accompanying drawings, in which examples of the present invention are shown. However, embodiments of the present invention may be implemented in many alternative forms and should not be construed as being limited to the examples set forth herein. Therefore, although embodiments of the present invention are susceptible to various modifications and alternative forms, specific examples thereof are shown by way of example in the accompanying drawings and will be described in detail herein. However, it should be understood that it is not desirable to limit embodiments of the present invention to the specific forms disclosed, but rather, this specification will cover all modifications, equivalents, and alternatives that fall within the spirit and scope of embodiments of the present invention as defined by the claims.

[0053] The terms used herein are only for the purpose of describing specific examples, rather than to limit embodiments of the present invention. As used herein, the singular forms "a", "an" and "the" are intended to also include plural forms, unless the context clearly indicates otherwise. It will also be understood that the terms "include" and / or "comprise" when used in this specification specify the existence of stated features, integers, steps, operations, elements and / or components, but do not exclude the existence or addition of one or more other features, integers, steps, operations, elements, components and / or their groups. In addition, when an element is referred to as "responding" or "connected" to another element, it can directly respond or be connected to another element, or there can be an intermediate element. On the contrary, when an element is referred to as "directly responding" or "directly connected" to other elements, there is no intermediate element. As used herein, the term "and / or" includes any and all combinations of one or more related listed items, and can be abbreviated as " / ".

[0054] It should be understood that although the terms first, second, etc. can be used to describe various elements here, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. For example, without departing from the teaching of the present embodiment, the first element can be referred to as the second element, and similarly, the second element can be referred to as the first element.

[0055] Although some diagrams include arrows on communication paths to illustrate a primary direction of communication, it is to be understood that communication can occur in the opposite direction to the depicted arrows.

[0056] Some examples are described with respect to block diagrams and operational flow charts, wherein each block represents a portion of a circuit element, module, or code, which includes one or more executable instructions for implementing a specified logical function (s). It should also be noted that in other implementations, the (one or more) functions mentioned in the blocks may not occur in the order mentioned. For example, depending on the functions involved, two blocks shown in succession may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order.

[0057] References herein to "according to an example" or "in an example" mean that a particular feature, structure, or characteristic described in conjunction with the example may be included in at least one implementation of the present embodiment. The phrases "according to an example" or "in an example" that appear in various places in the specification do not necessarily all refer to the same example, nor are separate or alternative examples necessarily mutually exclusive with other examples.

[0058] Reference signs appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.

[0059] Although not explicitly described, the present examples and variations may be employed in any combination or sub-combination.

[0060] In the following, the term "image region" designates a group of pixels of at least one image. These pixels may or may not be adjacent pixels and / or may or may not belong to the same image, but they all have at least one common attribute.

[0061] For example, the entire image itself can be considered an image region. An image can also be segmented into multiple blocks, and a block or a group of blocks then becomes an image region.

[0062] Image regions may also have non-rectangular shapes. This is the case, for example, when pixels of an image with the same (or similar) extracted features are associated to form an image region. An image region may be a patch defined in TMC2.

[0063] Examples of features extracted from images can be color, texture, normal vector, etc. .

[0064] Some figures show syntax tables widely used in TMC2 to define the structure of a bitstream compliant with TMC2. In these syntax tables, the terms ",,," represent unchanged parts of the syntax relative to the original definition given in TMC2 and are removed in the figures for ease of reading. Bold items in the figures indicate that the value of the item is obtained by parsing the bitstream. The right column of the syntax table indicates the number of bits used to encode the data of the syntax element. For example, u(4) indicates 4 bits are used to encode the data, u(8) indicates 8 bits, and ae(v) indicates a syntax element for context adaptive arithmetic entropy coding.

[0065] The grammatical elements as used herein are descriptive terms. Therefore, they do not exclude the use of other grammatical element names.

[0066] This embodiment is described for encoding / decoding one or more geometric images and one or more attribute images representing a point cloud, but can be extended to encoding / decoding geometric images of two sequences (videos) and attribute images of two sequences (videos) representing a point cloud sequence (temporal dynamic point cloud), because the geometry (two geometric images) and attributes (two attribute images) of the point cloud of the point cloud sequence are then encoded / decoded independently of the geometry (two geometric images) and attributes (two attribute images) of another point cloud of the point cloud sequence.

[0067] When encoding and / or reconstructing a point cloud, data may be missing, which results in a partial reconstruction of the input point cloud. This missing information may cause problems when rendering the input point cloud.

[0068] TMC2 provides good rate-distortion performance for lossy compression scenarios. However, when lossless compression is required, compression performance degrades significantly because a large number of patches need to be created to capture isolated (missing) points.

[0069] Other alternatives encode isolated points as special patches, without considering the potential correlation between these isolated points and those points captured in the "regular" patches (the result of the projection of the points on the projection plane). The basic idea is to project the point cloud onto the projection plane using TMC2 and capture the missing (isolated) points of the point cloud, i.e., the points not represented by the geometry / attribute image. The X coordinate, subsequent Y coordinate and finally Z coordinate of each missing / isolated point are stacked into a single vector and a "special" patch represented as a "missing point" patch is generated. The patch is then stored in a single channel (component) of a 10-bit 4:2:0 geometry image (see ISO / IEC JTC1 / SC29 / WG11MPEG2018 / m42680, April 2018, San Diego, CA, USA for more details).

[0070] This alternative limits the coordinate range of missing points to a maximum range (1024 when using the usual 10-bit 4:2:0 video format). This is important because the coordinates of missing / isolated points are stored as absolute values, i.e., the stored coordinate values ​​are defined from the origin (0,0,0) of the bounding box that defines the point cloud.

[0071] In general, at least one embodiment relates to a method for encoding / reconstructing the attributes of missing / isolated points, but the method can also be applied to encode / reconstruct the attributes of any other points of a point cloud. Therefore, the method can be considered as an alternative to image-based point cloud compression techniques (such as TMC2) for encoding (and reconstructing) the attributes of points of a point cloud. The method can also be considered as a means to improve lossy image-based point cloud compression techniques such as TMC2 by providing lossless compression of point clouds (encoding missing points).

[0072] The encoding method subdivides the bounding box defining the point to be encoded, encodes data representing the attribute of the point by referring to the sub-portion to which the point belongs; and encodes data representing the number of points included in each sub-portion.

[0073] The decoding method decodes the encoded data representing the attribute of the point by referring to the sub-part to which the point belongs. The sub-part is a sub-part of a plurality of sub-parts obtained by segmenting a bounding box defining the point. The method also decodes the encoded data representing the number of points included in each sub-part of the bounding box; and reconstructs the point from the decoded data.

[0074] Subdividing the bounding box that delimits the point to be encoded and encoding the data representing the attribute of the point by reference to the subpart to which the point belongs reduces the number of bits required to represent the attribute of the point. For example, the range of coordinate values ​​of those points can be reduced compared to the prior art because those coordinates can be defined from the reference points of the subpart to which the points belong instead of from the reference points of the bounding box.

[0075] The present invention allows lossless encoding of point cloud images / videos of any size, independent of the bit depth of the video encoded using the Video TMC2 Point Cloud Encoder.

[0076] Figure 1 A diagram schematically illustrates the operation of a method 100 for encoding attributes of at least some points of an input point cloud according to an example of the present embodiment.

[0077] In operation 110, the attributes of the points are encoded by the encoder M1. The attributes may correspond to geometry (or depth or distance to a viewpoint) information and / or texture (or color) information. For example, the points are "clustered" into connected components described in TMC2 (see TMC2) and encoded. For example, the points of each connected component may be projected on a projection plane, and the attributes of the projected points are stored in a so-called 2D patch (a set of pixels) of at least one pair of geometry and attribute images. Metadata representing the projection parameters used to obtain the 2D patch may also be encoded by the encoder M1. The encoder M1 is, for example, compatible with conventional encoders, such as:

[0078] JPEG, specification ISO / CEI 10918-1UIT-T Recommendation T.81, https: / / www.itu.int / rec / T-REC-T.81 / en,

[0079] AVC, also known as MPEG-4AVC or h264. Specified in UIT-T H.264 and ISO / CEI MPEG-4 Part 10 (ISO / CEI 14496-10), http: / / www.itu.int / rec / T-REC-H.264 / en,

[0080] HEVC (its specifications can be found on the ITU website, T recommendation, H series, H265, http: / / www.itu.int / rec / T- REC-H.265-201612-I / en Found), or

[0081] 3D-HEVC (an extension of HEVC, the specifications of which are found in Annexes G and I of the ITU website, T Recommendation, H Series, H265, http: / / www.itu.int / rec / T-REC-H.265-201612-I / en).

[0082] In operation 120, the data encoded by the encoder M1 are decoded by a decoder M2 and a point cloud is reconstructed from the decoded data (i.e. from the decoded attributes obtained from the decoded at least one geometry / attribute image and from the metadata representing the projection parameters), for example as explained in TMC2. The decoder M2 is compatible with the encoder M1, for example with conventional decoders such as:

[0083] JPEG,

[0084] AVC, also known as MPEG-4AVC or h264,

[0085] HEVC, or

[0086] ·3D-HEVC (extension of HEVC).

[0087] In operation 130 implemented by module M3, the reconstructed point cloud is compared with the input point cloud. Missing points that are missing in the reconstructed point cloud and present in the input point cloud can be detected.

[0088] In operation 140 , the bounding box defining the missing points detected at operation 130 is subdivided into a plurality of sub-portions.

[0089] According to an embodiment, the bounding box defining the missing points may correspond to the bounding box defining the input point cloud.

[0090] According to an embodiment, the bounding box may correspond to a cube (or more generally, a parallelogram) subdivided into a plurality of sub-cubes.

[0091] According to an embodiment, the sub-portion of the bounding box may depend on a specific bit depth, for example, the bit depth of an encoder used to encode the points and / or missing points of the input point cloud (typically 8 bits / 10 bits). Therefore, the size and / or dimension of the sub-portion (e.g., the edge of the sub-cube) does not exceed the specific bit depth (can be represented by using at most the maximum number of bits).

[0092] Therefore, the method can adapt to the constraints (bit depth) of the encoder used to encode geometry and attribute images in TMC2.

[0093] According to one embodiment, the bounding box is divided into a plurality of sub-cubes using an octree-based approach.

[0094] Basically, a cube is recursively divided into eight smaller sub-cubes. Depending on whether there is at least one missing point in a leaf cube, the leaf cube is marked as occupied or unoccupied.

[0095] In an embodiment, the octree depth is a constant value.

[0096] In a variation of this embodiment, the cube index is sent per sub-cube.

[0097] In variations of this embodiment, a traversal order (eg, depth-first or breadth-first) is sent or assumed.

[0098] In a variation of this embodiment, the octree depth is sent.

[0099] In an embodiment, the octree depth is variable.

[0100] In a variation of this embodiment, the occupied leaves of the partitioned octree are sent.

[0101] In a variation of this embodiment, there are no indices into the missing point patches; the patch metadata has the same order as the traversal order.

[0102] In a variant, the depth of the octree depends on the bit depth of an encoder used to encode the input point cloud and / or the missing points.

[0103] According to an embodiment, a clustering algorithm may be used to reorganize the missing points inside the sub-cube so as to minimize the number of "missing point" patches and / or minimize the energy of the encoded missing points, while taking into account the maximum size of the sub-cube, which depends on the input bit depth of the video codec (2 n , where n is equal to the bit depth). Using this algorithm, the origin of the subcube is completely unrestricted. Minimizing the number of "missing point" patches will reduce the encoding bit rate.

[0104] In operation 150, one or more 2D patches are obtained by module M5. The one or more 2D patches include data representing the attributes of each missing point.

[0105] According to one example, a single 2D patch is obtained.

[0106] According to another example, when a sub-portion includes at least one of the missing points, a 2D patch is obtained (or generated) for the sub-portion of the bounding box.

[0107] According to an embodiment, data representing attributes of a point belonging to a 2D patch relative to a sub-portion are encoded as follows:

[0108] For each missing point, data representing the attributes of the missing point is stored and associated with a pixel of a "missing point" patch (either a single 2D patch or a 2D patch relative to a sub-portion). The data can then be represented by reference to a reference point of the "missing point" patch. For example, the coordinates of the missing point are represented by dX, dY, and dZ differential coordinates calculated from the reference point of the sub-portion including the missing point under consideration. The dX coordinate, subsequent dY, and finally dZ coordinates of each missing point are stacked into a single vector. The "missing point" patch is then generated using all the vectors generated for all missing points belonging to the sub-portion.

[0109] Next, all "missing point" patches (one patch per sub-portion) are packed into a geometric image so that the geometric image includes "regular" patches representing attributes of at least some points of the input point cloud (step 110) and "missing point" patches representing attributes of missing points.

[0110] In operation 160, data representing the attribute of the missing point is encoded by referring to the sub-portion to which the missing point belongs. Data representing the number of missing points included in each sub-portion may also be encoded by the encoder M6.

[0111] For illustration purposes, the following algorithm for encoding data representing the attributes of the missing points is given:

[0112] – If the input point cloud to be encoded is contained in a 2048-bit 3 and the video codec has a 10-bit depth (e.g. HEVC Main 10)

[0113] – The bounding box can be divided into 8 blocks of size 1024 3 Subcube of

[0114] – For each subcube

[0115] oIf there is at least one missing point in the interior

[0116] ■ Create a MissingPointsPatch object that stores the position of the sub-cube within the bounding box

[0117] Update the origin of the subcube (u1,v1,d1)

[0118] Update the number of missing points

[0119] ■Create 2D patches MissingPointsPatch in geometric images (packing algorithm)

[0120] Update the position (u0, v0) in the geometric image that is useful for the decoding process

[0121] Sequentially add the differential coordinates (dX, dY, dZ) of each missing point (X, Y, Z) in the geometric image:

[0122] o dX=X-u1; dY=Y-v1; dZ=Z-d1;

[0123] Sequentially add the corresponding attributes (color components) in the attribute image

[0124] (R,G,B)

[0125] A bit stream BT is obtained. It comprises coded data representing said properties of said missing points. Said coded data refers to the sub-portion to which said missing points belong. It is also possible to code data representing the number of missing points included in each sub-portion.

[0126] The bitstream BT may be transmitted, for example, for decoding purposes and / or rendering of the reconstructed point cloud.

[0127] Figure 1 The encoding method can be integrated into the encoding process according to TMC2, for example.

[0128] Figure 2 The diagram schematically shows the operation of a method 200 for decoding attributes of points of a point cloud according to an example of the present embodiment.

[0129] In operation 210, the decoder M7 may decode the encoded data included in the bit stream BT. The bit stream BT may be Figure 1 The output of the method. The encoded data represents the attributes of the point.

[0130] The bit stream BT may also include encoded data representing the number of points included in each of a plurality of sub-parts obtained by subdividing the bounding box defining the points.

[0131] The decoder M7 can decode the number of points included in each sub-part and the encoded data representing the attributes of the points by referring to the sub-part to which the points belong.

[0132] The decoder M7 may correspond to Figure 1 The decoder M2 is compatible with conventional decoders such as:

[0133] JPEG,

[0134] AVC, also known as MPEG-4AVC or H264,

[0135] HEVC, or

[0136] ·3D-HEVC (extension of HEVC).

[0137] In operation 220 implemented by module M8, at least a portion of the input point cloud is reconstructed from the decoded data obtained in the previous operation. Include at least the missing points in the refactored version.

[0138] Figure 2 The decoding method can be integrated into the decoding process according to TMC2, for example.

[0139] According to an embodiment, the missing point may be reconstructed from the decoded data representing the properties of the missing point and by referencing the sub-portions as follows:

[0140] Decode the "missing point" patch from the decoded geometry image. Then, obtain the coordinate vector relative to the missing point from the "missing point" patch, and retrieve the dX, dY, dZ coordinates relative to the missing point from the vector.

[0141] The 3D coordinates (Xrec, Yrec, Zrec) of the missing point are then given by adding the dX, dY, dZ coordinates to the coordinates (u1, v1, z1) of the reference point of the "missing point" patch (element of PatchList[i]):

[0142] Xrec=dX+PatchList[i].u1

[0143] Yrec=dY+PatchList[i].v1

[0144] Zrec=bZ+PatchList[i].d1

[0145] The relevant attributes of the reconstructed point are obtained from the attribute image, for example as the pixel value at (Xrec, Yrec).

[0146] According to one embodiment, when a sub-portion includes at least one missing point, a “missing point” patch is obtained for the sub-portion.

[0147] According to an embodiment, the sub-portion of the bounding box depends on the bit depth of the decoder used to decode the missing point.

[0148] According to one embodiment, the attribute of the missing point corresponds to the geometric shape or texture / color information of the missing point.

[0149] according to Figure 3 In the example of this embodiment shown in FIG. 1 , in the context of transmission between two remote devices A and B via a communication network NET, device A comprises a processor associated with memories RAM and ROM, which are configured to implement as described with respect to Figure 1The method described, and device B comprises a processor associated with memories RAM and ROM, which are configured to implement as described with respect to Figure 2 The method described.

[0150] According to one example, the network is a broadcast network adapted to broadcast still images or video images from device A to decoding devices including the device B.

[0151] The signal intended to be sent by the device A carries the bitstream BT. The bitstream BT comprises coded data representing depth values ​​of points of a point cloud, at least one reconstructed point of the point cloud, and at least one interpolation coding mode indicating how at least one point in the neighborhood of the at least one reconstructed point is approximated by at least one other interpolation point.

[0152] For example, regarding Figure 1 As explained, the encoded data is obtained.

[0153] Figure 4 An example of the syntax of such a signal is shown when data is transmitted via a packet-based transport protocol. Each transmitted packet P comprises a header H and a payload PAYLOAD. An example of the syntax elements included in such a signal is given in TMC2.

[0154] In order to reconstruct the geometry (2D position) of the missing points, the decoder needs to know the reference point of the subpart (usually its origin) (x1, y1, z1) and the number of missing points (num_of_mps) for each "missing points" patch in order to reconstruct all these missing points.

[0155] Multiple syntax elements of TMC2 are used to carry the coded data required to reconstruct the missing points.

[0156] Figure 5 An example of syntax elements for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment is shown.

[0157] This syntax element is based on the "group_of_frames_auxiliary_information" syntax element defined in TMC2.

[0158] The syntax element patch_count indicates the total number of patches including the "missing point" patch. The syntax element mps_patch_count indicates the number of "missing point" patches in the geometric image, and the syntax element num_of_mps[i] is also added to indicate the number of missing points in each "missing point" patch i, i.e., the last patch in the geometric image (from "patch_count-mps_patch_count is a "missing point" patch).

[0159] Figure 6 An example of syntax elements for carrying information required by a decoder to reconstruct all missing points of a point cloud according to an embodiment is shown.

[0160] This syntax element is based on the "group_of_frames_auxiliary_information" syntax element defined in TMC2.

[0161] In this embodiment, the final patch is the "missing point" patch in the geometric image.

[0162] The syntax element patch_count indicates the total number of patches excluding the "missing point" patches. The syntax element mps_patch_count indicates the number of "missing point" patches in the geometry image, and the syntax element num_of_mps[i] is also added to indicate the number of missing points in each "missing point" patch i, i.e., the last patch in the geometry image (from "patch_count-mps_patch_count) is a "missing point" patch.

[0163] Figure 7 An example of syntax elements for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment is shown.

[0164] This syntax element is based on the "sequence parameter set" syntax element as defined in TMC2.

[0165] The syntax element sps_pcm_multiple_patch_present_flag indicates whether multiple PCM patches are used.

[0166] The syntax element sps_pcm_relative_3D_offset indicates whether the 3D offset is transmitted in absolute or relative mode in the PCM patch syntax. A value of 0 indicates absolute mode and a value of 1 indicates relative mode (the offset value is encoded with an index).

[0167] The syntax element sps_pcm_relative_3D_offset indicates the maximum number of PCM patches. When the mode sps_pcm_relative_3D_offset_flag is set to 1, this value is used to encode the PCM patch index.

[0168] Figure 8 An example of syntax elements for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment is shown.

[0169] This syntax element is based on the "patch_frame_data_unit" syntax element defined in TMC2.

[0170] The added syntax (grey shaded area) adds parsing for an additional type of patch data unit for signaling the presence of EOM texture patches.

[0171] Fig. 9 An example of syntax elements for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment is shown.

[0172] This syntax element is based on the "pcm_patch_data_unit" syntax element defined in TMC2.

[0173] Fig.10 An example of syntax elements for carrying information needed by a decoder to reconstruct missing points of a point cloud according to an embodiment is shown.

[0174] This syntax element is based on the "pcm_patch_data_unit" syntax element defined in TMC2.

[0175] Additional data is introduced:

[0176] pdu_3d_pcm_shift_tangent_axis[frmIdx][patchIndex] specifies the shift along the tangent axis to be applied to the reconstructed PCM patch points in the patch with index p in the patch frame frmIdx. The value of pdu_3d_shift_tangent_axis[frmIdx][p] shall be between 0 and Min(2 pfh_3d_shift_tangent_axis_bit_count_minus1[frmIdx]+1 ,2 gps _geometry_3d_coordinates_bitdepth_minus1+1 -1), including the end value.

[0177] pdu_3d_pcm_shift_bitangent_axis[frmIdx][patchIndex] specifies the shift to be applied along the bitangent axis to the PCM reconstructed patch points in the patch at index p in the patch frame frmIdx. The value of pdu_3d_shift_bitangent_axis[frmIdx][patchIndex] should be between 0 and Min(2 pfh _3d_shift_bitangent_axis_bit_count_minus1[frmIdx]+1 ,2 gps_geometry_3d_coordinates_bitdepth_minus1+1 -1), including the end value.

[0178] pdu_3d_pcm_shift_normal_axis[frmIdx][patchIndex] specifies the shift along the normal axis to be applied to the PCM reconstructed patch points in the patch with index p in the patch frame frmIdx. The value of pdu_3d_shift_normal_axis[frmIdx][patchIndex] should be between 0 and Min(2 pfh_3d_shift_normal_axis_bit_count_minus1[frmIdx]+1 ,2 gps _geometry_3d_coordinates_bitdepth_minus1+1 -1), including the end value.

[0179] dpdu_3d_relative_shift_index[frmIdx][patchIndex] specifies the index that allows the calculation of the three 3D shift values ​​(tangential, bitangential and normal). The decoding process of this index described in xxxxx calculates the three following parameters:

[0180] ·pdu_3d_pcm_shift_tangent_axis[frmIdx][p]

[0181] ·pdu_3d_pcm_shift_bitangent_axis[frmIdx][p]

[0182] ·pdu_3d_pcm_shift_normal_axis[frmIdx][p]

[0183] According to an embodiment, the encoding method may generate an additional patch: an OEM texture patch representing the attributes of the missing points. This patch may be packed in the attribute image. The patch information of the additional patch may also be encoded.

[0184] According to an embodiment, the decoding method may obtain an OEM texture patch following one of the above syntaxes.According to the parameters in the EOM texture patch (and eventually fixed parameters such as sorting and rasterization mode), the attributes of the missing points may be obtained from the EOM texture patch.

[0185] According to an embodiment, dpdu_3d_relative_shift_index is decoded as follows:

[0186] The inputs to this process are:

[0187] dpdu_3d_relative_shift_index

[0188] gps_geometry_nominal_2d_bitdepth_minus1 from geometry_parameter_set()

[0189] gps_geometry_3d_coordinates_bitdepth_minus1 from geometry_parameter_set()

[0190] The output of this process:

[0191] pdu_3d_pcm_shift_tangent_axis

[0192] pdu_3d_pcm_shift_bitangent_axis

[0193] pdu_3d_pcm_shift_normal_axis

[0194] The dpdu_3d_relative_shift_index specifies the index to be decoded. gps_geometry_nominal_2d_bitdepth_minus1 indicates the nominal 2D bit depth to which all geometry video will be converted. gps_geometry_nominal_2d_bitdepth_minus1 should be in the range of 0 to 31, inclusive. gps_geometry_3d_coordinates_bitdepth_minus1 indicates the bit depth of the geometry coordinates of the reconstructed point cloud. gps_geometry_3d_coordinates_bitdepth_minus1 should be in the range of 0 to 31, inclusive.

[0195] The bounding box of the reconstructed point cloud can be divided into a set of sub-cubes. Each sub-cube is indexed by an index. The decoding result of the index gives the 3D position of each sub-cube (3D PCM box).

[0196] The size of the bounding box of the reconstructed point cloud may be given as the bit depth of the 3D coordinates of the reconstructed point cloud parameters (gps_geometry_3d_coordinates_bitdepth_minus1).

[0197] The size of the 3D PCM box can be given by the bit depth of the geometry video parameters (gps_geometry_nominal_2d_bitdepth_minus1). The side of the 3D PCM box is equal to 2 gps_geometry_nominal_bitdepth_minus1+1 .

[0198] Therefore, the difference between gps_geometry_3d_coordinates_bitdepth_minus1 and gps_geometry_nominal_2d_bitdepth_minus1 indicates the index of the number of 3D positions in one 3D axis.

[0199] n=gps_geometry_3d_coordinates_bitdepth_minus1-gps_geometry_nominal_2d_bitdepth_minus1;

[0200] pdu_3d_pcm_shift_normal_axis=(dpdu_3d_relative_shift_index&2n-1)

[0201] *2gps_geometry_nominal_bitdepth_minus1+1;

[0202] pdu_3d_pcm_shift_tangent_axis=(dpdu_3d_relative_shift_index&(2n-1)<<(2n-1))

[0203] *2gps_geometry_nominal_bitdepth_minus1+1

[0204] pdu_3d_pcm_shift_bitangent_axis=(dpdu_3d_relative_shift_index&2*(2n-1)<<(2n-1))

[0205] *2gps_geometry_nominal_bitdepth_minus1+1

[0206] Example:

[0207] gps_geometry_3d_coordinates_bitdepth_minus1=14;

[0208] 2gps_geometry_nominal_bitdepth_minus1=10;

[0209] pdu_3d_pcm_shift_normal_axis=(index&0x000f)*1024);

[0210] pdu_3d_pcm_shift_tangent_axis=(index&0x00f0)*1024);

[0211] pdu_3d_pcm_shift_bitangent_axis=(index&0x0f00)*1024);

[0212] In this example, each 3D coordinate is encoded with 4 bits.

[0213] An index value equal to 0x0123 gives the following results:

[0214] pdu_3d_pcm_shift_normal_axis =3*1024=3072;

[0215] pdu_3d_pcm_shift_tangent_axis =2*1024=2048;

[0216] pdu_3d_pcm_shift_bitangent_axis=1*1024=1024;

[0217] According to an embodiment, points of a point cloud are reconstructed from PCM-encoded patches as follows.

[0218] The inputs to this process are:

[0219] gFrame, decoded geometry frame structure

[0220] aFrame, the decoded attribute frame

[0221] recPc, a container for storing a list of points in the reconstructed point cloud.

[0222] pointsAdded, a variable indicating the number of points that have been added to the list of points in the reconstructed point cloud.

[0223] patch, the patch from which the point is retrieved and added to the list of points in the reconstructed point cloud (this process assumes that the input patch is a PCM-encoded patch).

[0224] The output of this process is a point cloud losslessly reconstructed in recPC.

[0225] First, retrieve the patch information as follows:

[0226] pdu_2d_shift_u=patch.pdu_2d_shift_u

[0227] pdu_2d_shift_v=patch.pdu_2d_shift_v

[0228] Patch2dSizeU=patch.pdu_3d_shift_tangent_axis-patch.pdu_2d_shift_u

[0229] Patch2dSizeV=patch.pdu_3d_shift_bitangent_axis-patch.pdu_2d_shift_v

[0230] occupancyResolution=patch.occupancy_resolution

[0231] If the lossless_geometry_444 flag is equal to 0, points are retrieved from PCM-coded patches stored in the geometry frame using the 4:4:4 format as specified in clause 3.3.1.1 of TMC2.

[0232] Retrieve points from PCM-encoded patches stored in a 4:4:4 geometry frame

[0233] Retrieve a point from the PCM-encoded patch and add it to the reconstructed point cloud as follows:

[0234]

[0235] Fig.11 A block diagram of an example of a system in which various aspects and embodiments are implemented is shown. System 11000 can be implemented as a device including various components described below, and is configured to perform one or more aspects described in this application. Examples of such devices include, but are not limited to, various electronic devices, such as personal computers, laptop computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, connected household appliances and servers. The elements of system 11000 can be implemented in a single integrated circuit, multiple ICs and / or discrete components individually or in combination. For example, in at least one embodiment, the processing and encoder / decoder elements of system 11000 are distributed on multiple ICs and / or discrete components. In various embodiments, the system 11000 is communicatively coupled to other similar systems or other electronic devices via, for example, a communication bus or by dedicated input and / or output ports. In various embodiments, the system 11000 is configured to implement one or more aspects described herein.

[0236] The system 11000 includes at least one processor 11010, which is configured to execute instructions loaded therein, for implementing various aspects described herein, for example. The processor 11010 may include embedded memory, input and output interfaces, and various other circuits known in the art. The system 11000 includes at least one memory 11020 (e.g., a volatile memory device and / or a non-volatile memory device). The system 11000 includes a storage device 11040, which may include a non-volatile memory and / or a volatile memory, including but not limited to EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash memory, a disk drive, and / or an optical drive. As a non-limiting example, the storage device 11040 may include an internal storage device, an attached storage device, and / or a network-accessible storage device.

[0237] The system 11000 includes an encoder / decoder module 11030, which is configured to, for example, process data to provide encoded video or decoded video, and the encoder / decoder module 11030 may include its own processor and memory. The encoder / decoder module 11030 represents a module (one or more) that may be included in a device to perform encoding and / or decoding functions. As is known, a device may include one or both of the encoding module and the decoding module. In addition, the encoder / decoder module 11030 may be implemented as a separate element of the system 11000 or may be incorporated into the processor 11010 as a combination of hardware and software as known to those skilled in the art.

[0238] Program code to be loaded onto the processor 11010 or the encoder / decoder 11030 to perform various aspects described in this document may be stored in the storage device 11040 and subsequently loaded onto the memory 11020 for execution by the processor 11010. According to various embodiments, one or more of the processor 11010, the memory 11020, the storage device 11040, and the encoder / decoder module 11030 may store one or more of the various items during execution of the processes described herein. These stored items may include, but are not limited to, input video, decoded video or portions of the decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic.

[0239] In several embodiments, memory within the processor 11010 and / or the encoder / decoder module 11030 is used to store instructions and provide working memory for processing required during encoding or decoding.

[0240] However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 11010 or the encoder / decoder module 11030) is used for one or more of these functions. The external memory may be a memory 11020 and / or a storage device 11040, such as a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store the operating system of the television. In at least one embodiment, a fast external dynamic volatile memory such as RAM is used as working memory for video encoding and decoding operations, such as working memory for MPEG-2, HEVC, VVC (Universal Video Coding), or TMC2.

[0241] As shown in block 11130, input to the elements of system 11000 may be provided through various input devices. Such input devices include, but are not limited to: (i) an RF portion that receives an RF signal transmitted over the air, for example, by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.

[0242] In various embodiments, the input device of block 11130 has associated corresponding input processing elements known in the art. For example, the RF section may be associated with elements necessary for: (i) selecting a desired frequency (also referred to as selecting a signal, or band limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again band limiting the frequency band to a narrower frequency band to select (e.g.,) a signal band that may be referred to as a channel in some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF section of various embodiments includes one or more elements to perform these functions, such as a frequency selector, a signal selector, a band limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section may include a tuner that performs various of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or baseband.

[0243] In one set-top box embodiment, the RF section and its associated input processing elements receive RF signals transmitted over a wired (eg, cable) medium and perform frequency selection to a desired frequency band by filtering, down-converting, and filtering again.

[0244] Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions.

[0245] Adding components may include inserting components between existing components, such as inserting an amplifier and an analog-to-digital converter.In various embodiments, the RF portion includes an antenna.

[0246] In addition, the USB and / or HDMI terminals may include corresponding interface processors for connecting the system 11000 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Solomon error correction) can be implemented as needed, for example, in a separate input processing IC or processor 11010. Similarly, various aspects of USB or HDMI interface processing can be implemented as needed in a separate interface IC or in the processor 11010. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements, including, for example, the processor 11010 and the encoder / decoder 11030, which operate in conjunction with memory and storage elements to process the data stream as needed for presentation on an output device.

[0247] The various components of the system 11000 may be arranged in an integrated housing. In the integrated housing, the various components may be interconnected and transmit data between them using a suitable connection arrangement (eg, an internal bus known in the art, including an I2C bus, wiring, and a printed circuit board).

[0248] The system 11000 includes a communication interface 11050 that enables communication with other devices via a communication channel 11060. The communication interface 11050 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 11060. The communication interface 11050 may include, but is not limited to, a modem or a network card, and the communication channel 11060 may be implemented, for example, within a wired and / or wireless medium.

[0249] In various embodiments, a Wi-Fi network (e.g., IEEE 802.11) is used to stream data to the system 11000. The Wi-Fi signals of these embodiments are received through a communication channel 11060 suitable for Wi-Fi communications and a communication interface 11050. The communication channel 11060 of these embodiments is typically connected to an access point or router that provides access to external networks including the Internet to allow streaming applications and other cloud communications.

[0250] Other embodiments provide streaming data to the system 11000 using a set top box that delivers the data through the HDMI connection of the input box 11130.

[0251] Still other embodiments use the RF connection of input box 11130 to provide streaming data to system 11000 .

[0252] The system 11000 can provide output signals to various output devices, including a display 11100, speakers 11110, and other peripheral devices 11120. In various examples of various embodiments, the other peripheral devices 11120 include one or more of the following: a stand-alone DVR, a disk player, a stereo system, a lighting system, and other devices that provide functions based on the output of the system 11000.

[0253] In various embodiments, control signals are transmitted between the system 11000 and the display 11100, speakers 11110, or other peripheral devices 11120 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention.

[0254] The output devices can be communicatively coupled to system 11000 via dedicated connections through respective interfaces 11070 , 11080 , and 11090 .

[0255] Alternatively, the output device may be connected to the system 11000 via the communication interface 11050 using the communication channel 11060. The display 11100 and the speaker 11110 may be integrated with the other components of the system 11000 into a single unit in an electronic device (eg, a television).

[0256] In various embodiments, the display interface 11070 includes a display driver, such as a timing controller (T Con) chip.

[0257] For example, if the RF portion of the input 11130 is part of a separate set-top box, the display 11100 and speaker 11110 may alternatively be separate from one or more of the other components. In various embodiments where the display 11100 and speaker 11110 are 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.

[0258] The embodiments of various processes and features described herein can be embodied in various devices or applications. Examples of such devices include encoders, decoders, postprocessors for processing the output from decoders, preprocessors for providing input to encoders, video encoders, video decoders, video codecs, network servers, set-top boxes, laptop computers, personal computers, cellular phones, PDAs, and any other devices or other communication devices for processing pictures or videos. It should be clear that the device can be mobile and can even be installed in a mobile vehicle.

[0259] In addition, the method may be implemented by instructions being executed by a processor, and such instructions (and / or data values ​​generated by the implementation scheme) may be stored on a computer-readable storage medium. A computer-readable storage medium may take the form of a computer-readable program product that is embedded in one or more computer-readable media and has a computer-executable computer-readable program code embedded thereon. As used herein, a computer-readable storage medium is considered to be a non-transitory storage medium that is endowed with an inherent ability to store information therein and to provide an inherent ability to retrieve information therefrom. A computer-readable storage medium may be, for example, but not limited to: an electrical, magnetic, optical, electromagnetic, infrared or semiconductor system, device or apparatus, or any suitable combination of the foregoing. It should be understood that, although more specific examples of computer-readable storage media to which the present embodiment may be applied are provided, as will be readily understood by those of ordinary skill in the art, the following are merely illustrative and non-exhaustive enumerations: portable computer disks; hard disks; read-only memories (ROMs); erasable programmable read-only memories (EPROMs or flash memories); portable compact disk read-only memories (CD-ROMs); optical storage devices; magnetic storage devices; or any suitable combination of the foregoing.

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

[0261] Instructions may be, for example, hardware, firmware, software, or a combination thereof. Instructions may be found, for example, in an operating system, a separate application, or a combination of both. Thus, a processor may be characterized as both, for example, a device configured to perform a process and a device including a processor-readable medium (such as a storage device) having instructions for performing the process. In addition, the processor-readable medium may store data values ​​generated by the implementation in addition to or in lieu of the instructions.

[0262] As will be apparent to those skilled in the art, implementations may generate various signals formatted to carry information that may be stored or sent, for example. The information may include, for example, instructions for executing a method, or data generated by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the grammar of the example of the present embodiment, or to carry as data the actual grammar values ​​written by the example of the present embodiment. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using the radio frequency portion of the spectrum) or a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is known, the signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.

[0263] Many implementations have been described. However, it should be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. In addition, it will be appreciated by those skilled in the art that other structures and processes may replace those disclosed, and the resulting implementations will perform at least substantially the same function (one or more) in at least substantially the same manner (one or more) to achieve at least substantially the same result (one or more) as the disclosed implementations. Therefore, the present application contemplates these and other implementations.

Claims

1. A method comprising: obtaining a patch from the geometric image, wherein pixel values ​​of the patch include differential 3D coordinates of at least one point of the point cloud, decoding information representing the 3D coordinates of a reference point of the patch, reconstructing the 3D coordinates of the at least one point based on the 3D coordinates of the reference point, Therein, the information representing the 3D coordinates of the reference point depends on the bit depth of a decoder used to decode the geometric image.

2. Method according to claim 1, wherein the information representative of the 3D coordinates of the reference point is an index allowing determination of a shift value to be applied to the point reconstructed from the patch on the tangential axis, the bitangential axis and the normal axis.

3. The method of claim 1, wherein decoding the information representing the 3D coordinates of the reference point is based on a difference between a bit depth used to represent the 3D coordinates of a point of the point cloud and a bit depth of the decoder used to decode the geometric image.

4. The method according to claim 3, wherein: The 3D coordinates of the reference point are obtained from: the decoded information and the bit depth of the decoder used to decode the geometric image. 5 . The method of claim 1 , wherein the reference point is an origin of a sub-portion of the point cloud, the sub-portion being one of a plurality of sub-portions obtained by segmenting a bounding box delimiting points of the point cloud.

6. The method according to claim 1, wherein: The patch is a patch used to encode the 3D coordinates of missing points of the point cloud, where the missing points are points in the point cloud that have not been projected onto a projection plane. 7 . The method according to claim 1 , wherein the geometric image further comprises at least one regular surface patch, the regular surface patch comprising depth data of points of the point cloud projected on the projection plane.

8. The method of claim 6, further comprising at least one of: decoding information indicating a number of patches used to encode missing points, or decoding information indicating a number of points in the patch.

9. An apparatus comprising one or more processors, the one or more processors being configured to: obtaining a patch from the geometric image, wherein pixel values ​​of the patch include differential 3D coordinates of at least one point of the point cloud, decoding information representing the 3D coordinates of a reference point of the patch, reconstructing the 3D coordinates of the at least one point based on the 3D coordinates of the reference point, in, The information representative of the 3D coordinates of the reference point depends on the bit depth of a decoder used for decoding the geometric image.

10. The apparatus according to claim 9, wherein the information representative of the 3D coordinates of the reference point is an index allowing determination of shift values ​​to be applied to points reconstructed from the patch in the tangential, bi-tangential and normal axes.

11. The apparatus of claim 9, wherein the information representing the 3D coordinates of the reference point is decoded based on a difference between a bit depth used to represent the 3D coordinates of a point of the point cloud and a bit depth of the decoder used to decode the geometric image.

12. The apparatus of claim 11, wherein the 3D coordinates of the reference point are obtained from: the decoded information and the bit depth of the decoder used to decode the geometric image.

13. A non-transitory computer-readable medium comprising instructions for causing one or more processors to perform the method of claim 1.

14. A non-transitory computer recordable medium comprising a bitstream, the bitstream comprising encoded data representing attributes of points of a point cloud, the encoded data comprising: data representing a patch from a geometric image, wherein pixel values ​​of the patch comprise differential 3D coordinates of at least one point of a point cloud, information representing 3D coordinates of a reference point of the patch, the 3D coordinates of the reference point being used to reconstruct the 3D coordinates of the at least one point, Therein, the information representing the 3D coordinates of the reference point depends on the bit depth of a decoder used to decode the geometric image.

15. The non-transitory computer recordable medium of claim 14, wherein the information representing the 3D coordinates of the reference point is an index that allows determination of shift values ​​to be applied to points reconstructed from the patch in tangential, bi-tangential and normal axes.

16. The non-transitory computer recordable medium of claim 14, wherein: The information representing the 3D coordinates of the reference point is encoded based on a difference between a bit depth used to represent the 3D coordinates of a point of the point cloud and the bit depth of the decoder used to decode the geometric image.

17. A method comprising: encoding data representing a patch from a geometric image, wherein pixel values ​​of the patch include differential 3D coordinates of at least one point of a point cloud, encoding information representing 3D coordinates of a reference point of the patch, the 3D coordinates of the reference point being used to reconstruct the 3D coordinates of the at least one point, Therein, the information representing the 3D coordinates of the reference point depends on the bit depth of a decoder used to decode the geometric image.

18. The method according to claim 17, wherein the information representative of the 3D coordinates of the reference point is an index allowing determination of shift values ​​to be applied to points reconstructed from the patch in the tangential, bi-tangential and normal axes.

19. An apparatus comprising one or more processors, the one or more processors being configured to: encoding data representing a patch from a geometric image, wherein pixel values ​​of the patch include differential 3D coordinates of at least one point of a point cloud, encoding information representing 3D coordinates of a reference point of the patch, the 3D coordinates of the reference point being used to reconstruct the 3D coordinates of the at least one point, in, The information representative of the 3D coordinates of the reference point depends on the bit depth of a decoder used for decoding the geometric image.

20. The apparatus of claim 19, wherein the information representative of the 3D coordinates of the reference point is an index allowing determination of shift values ​​to be applied to points reconstructed from the patch in the tangential, bi-tangential and normal axes.