Method and apparatus for encoding / decoding geometry of point cloud

Through the combination of point cloud projection and interpolation coding mode, the problems of low efficiency and poor quality of point cloud compression in the prior art are solved, and more efficient coding and transmission are achieved.

CN119295570APending Publication Date: 2025-01-10INTERDIGITAL VC HOLDINGS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411458896.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-01-17
Filing Date
2019-06-28
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

Existing image-based point cloud compression techniques are inefficient and poor in compression, making it difficult to effectively project and encode when processing point clouds with multi-pleated surfaces or do not follow the surface.

Method used

By projecting the point of the point cloud onto the projection plane, reconstructed points and interpolated points are obtained and encoded based on the interpolation encoding mode, the position and depth values ​​of the interpolation point are determined to approximate the other of the point cloud to improve coding efficiency and quality.

Benefits of technology

Improve the encoding efficiency and quality of point clouds, especially in the case of complex surface and non-surface point clouds, reduce the size of the bitstream and achieve more efficient storage and transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119295570A_ABST
    Figure CN119295570A_ABST
Patent Text Reader

Abstract

The invention relates to a method and apparatus for encoding / decoding a geometry of a point cloud. The method includes: obtaining a reconstructed 2D point from a first 2D point obtained by projecting a 3D point of a point cloud onto a projection plane; determining an interpolation coding mode based on a rate distortion cost associated with at least one candidate interpolation coding mode defining a neighborhood around the reconstructed 2D point and a minimum depth value for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approaches at least one other 2D point of the point cloud, and the interpolation coding and decoding mode is coded.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese invention patent application with application date of June 28, 2019 and application number 201980046431.2. Technical Field

[0002] The present embodiments generally relate to encoding and decoding of point clouds representing the outer surface of a 3D object. In particular, but not exclusively, the technical field of the present embodiments relates to encoding / decoding the geometric structure of such point clouds. Background Art

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

[0004] A point cloud is a collection of 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 location (X, Y, and Z coordinates in 3D space) and may also be defined by other related properties such as color (e.g., color represented in RGB or YUV color space), transparency, reflectivity, a two-component normal vector, etc.

[0005] A point cloud is typically 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] Point clouds can be either static or dynamic, depending on whether the cloud evolves over time. It should be noted that in the case of a dynamic point cloud, the number of points is not constant, but instead usually evolves over time. Therefore, a dynamic point cloud is a list of a collection of points that is ordered in time.

[0007] In fact, point clouds can be used for various purposes (such as cultural heritage / architecture, where objects like statues or buildings are 3D scanned) in order to share the spatial configuration of an object without having to send or access it. Moreover, it is also a way to ensure that the knowledge of the object is preserved in case it is destroyed; for example, a temple in an earthquake. Such point clouds are usually static, colorful and huge.

[0008] Another use case is in topography and cartography, where 3D representations are used and maps are not limited to flat surfaces and can include terrain. Google Maps is now a good example of a 3D map, but it uses meshes instead of point clouds. However, point clouds may be a suitable data format for 3D maps, and such point clouds are usually static, colored, and huge.

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

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

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

[0012] The key is to be able to distribute dynamic point clouds to end users at a reasonable bitrate consumption while maintaining an 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., 3D points) onto a 2D image. For example, at least one depth image represents the geometry of the point cloud, i.e., the spatial coordinates of the 3D points in 3D space, and at least one texture image represents the properties associated with the 3D points of the point cloud, e.g., texture / color information associated with those 3D points. Next, these techniques encode such depth and texture 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, like for example HEVC ("ITU-T H.265 ITU Telecommunication Standardization Sector (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 at the same time, 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 point clouds may not be suitable for projection onto images, 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 very low compression efficiency (many small projections are required, which reduces the efficiency of 2D video compression) or very 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 structures and texture information onto the same spatial location (pixel) of the image. This means that several depth and / or texture images can be generated for each 3D point of the point cloud.

[0017] This is the case, for example, with the so-called Test Model Category 2 point cloud encoder (TMC2), as defined in ISO / IEC JTC1 / SC29 / WG11 / N17248, Macau, China, October 2017, where the point cloud is orthogonally projected onto a projection plane. Two depth values ​​are then associated with each coordinate of the projection plane: one depth value representing the depth value associated with the closest point (minimum depth value) and the other depth value representing the depth value of the farthest point (maximum depth value). A first depth image (D0) is then generated from the minimum depth value and a second depth image (D1) is generated from the absolute value of the maximum depth value, where D1-D0 is less than or equal to the maximum surface thickness.

[0018] The depth images and related metadata are then encoded and decoded. The geometry of the point cloud is then reconstructed from the two decoded depth images. However, in order to reduce the global code cost of the point cloud, the code efficiency of the two depth images should be improved. Summary of the invention

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

[0020] The present embodiment sets out to remedy at least one shortcoming of the prior art with a method comprising:

[0021] - obtaining at least one first point from at least one point of the point cloud by projecting said point onto a projection plane, and obtaining at least one other point of the point cloud determined from said at least one first point;

[0022] - determining and encoding at least one interpolation coding mode for the at least one first point based on at least one reconstructed point obtained from the at least one first point and at least one interpolation point, the at least one interpolation point being defined by the at least one interpolation coding mode to approximate the at least one other point of the point cloud; and

[0023] - signaling said at least one interpolation codec mode as a value of the picture data.

[0024] The present embodiment sets out to remedy at least one shortcoming of the prior art with another method, the method comprising: obtaining a reconstructed 2D point from a first 2D point obtained by projecting a 3D point of a point cloud onto a projection plane; determining an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud, and encoding the interpolation coding mode.

[0025] The present embodiment sets out to remedy at least one shortcoming of the prior art by another method, the method comprising: reconstructing at least one first point of a point cloud encoded in a bitstream, decoding at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood and a minimum depth value around the at least one first point, and reconstructing at least one 2D interpolation point of the point cloud based on the at least one first point and the interpolation coding mode.

[0026] The present embodiment sets out to remedy at least one shortcoming of the prior art with a device, the device comprising at least one processor, the at least one processor being configured to: obtain a reconstructed 2D point from a first 2D point obtained by projecting a 3D point of a point cloud onto a projection plane; determine an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud, and encode the interpolation coding mode.

[0027] The present embodiment sets out to remedy at least one shortcoming of the prior art with another device, which includes at least one processor, and the at least one processor is configured to: reconstruct at least one first point of a point cloud encoded in a bitstream, decode at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood and a minimum depth value around the at least one first point, and reconstruct at least one 2D interpolation point of the point cloud based on the at least one first point and the interpolation coding mode.

[0028] The present embodiment sets out to remedy at least one shortcoming of the prior art with a non-transitory computer-readable medium, the non-transitory computer-readable medium comprising instructions for causing one or more processors to perform the following operations: obtaining a reconstructed 2D point from a first 2D point obtained by projecting a 3D point of a point cloud onto a projection plane; determining an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point to provide a method for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud, and encoding the interpolation coding mode.

[0029] The present embodiment sets out to remedy at least one shortcoming of the prior art with another non-transitory computer-readable medium, which includes instructions for causing one or more processors to perform the following operations: reconstruct at least one first point of a point cloud encoded in a bitstream, decode at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood and a minimum depth value around the at least one first point, and reconstruct at least one 2D interpolation point of the point cloud based on the at least one first point and the interpolation coding mode.

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

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

[0032] Figure 1 A diagram schematically shows the steps of a method 100 for encoding depth values ​​of points of a point cloud according to an example of this embodiment;

[0033] Figure 2 A diagram schematically shows an embodiment of step 130 according to an embodiment of the present embodiment;

[0034] Figure 3 , Figure 3a An embodiment of candidate interpolation coding modes according to an example of the present embodiment is shown;

[0035] Figure 4 The diagram schematically shows the steps of a method 200 for decoding a first depth image and a second depth image from a bitstream according to an example of the present embodiment.

[0036] Figure 5 Schematically illustrates a method for encoding the geometry and texture of a point cloud as defined in the prior art (TMC2);

[0037] Figure 6 Schematically shows the Figure 5 An example of using methods 100 and 200 in an encoding method;

[0038] Figure 6a Shows Figure 6 Variations of;

[0039] Figure 7 Schematically illustrates a method for decoding the geometry and texture of a point cloud as defined in the prior art (TMC2);

[0040] Figure 8 Schematically shows the Figure 7 An example of using method 200 in a decoding method;

[0041] Figure 8a Shows Figure 8 Variations of;

[0042] Fig. 9 An example block diagram of a system for implementing various aspects and embodiments according to an example of the present embodiment is shown;

[0043] Fig.10 Two remote devices communicating over a communication network according to an example of the present embodiment are shown;

[0044] Fig.11 shows the syntax of a signal according to an example of the present embodiment;

[0045] Fig.12 shows an example of the distribution of usage of reconstruction modes in TMC2; and

[0046] Figure 13-13b An example of an occupancy map is shown.

[0047] Similar or identical elements are referenced with the same reference numerals. DETAILED DESCRIPTION

[0048] The present embodiment will be described more fully below with reference to the accompanying drawings, in which examples of the present embodiment are shown. However, the present embodiment may be embodied in many alternative forms and should not be construed as being limited to the examples set forth herein. Accordingly, although the present embodiment is 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 intended to limit the present embodiment to the particular form disclosed, but on the contrary, this specification will cover all modifications, equivalents and substitutions that fall within the spirit and scope of the present embodiment as defined by the claims.

[0049] The terms used herein are only used to describe the purpose of specific examples and are not intended to limit the present embodiment. As used herein, the singular forms "one", "an" and "the" are also intended to include plural forms, unless the context clearly indicates otherwise. It should also be understood that when used in this specification, the terms "include", "comprise", "contain" and / or "cover" 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 combinations. In addition, when an element is referred to as "in response to" or "connected to" another element, it can directly respond to 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 to" or "directly connected to" other elements, there is no intermediate element. As used herein, the term "and / or" includes any one and all combinations of one or more related listed items, and can be abbreviated as " / ".

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

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

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

[0053] 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" appearing in various places in the specification do not necessarily all refer to the same example, nor are they necessarily separate or alternative examples that are mutually exclusive with other examples.

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

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

[0056] This embodiment is described as being used for encoding / decoding two depth images and two texture images representing a point cloud, but is extended to encoding / decoding two depth image sequences (videos) and two texture image sequences (videos) representing a point cloud sequence (temporal dynamic point cloud), because the geometry (two depth images) and texture (color) of the point cloud of the point cloud sequence are then encoded / decoded independently of the geometry (two depth images) and texture (color) of another point cloud of the point cloud sequence.

[0057] As described above, the point cloud is orthogonally projected onto the projection plane, and two depth images D0 and D1 are obtained from the depth values ​​associated with the projected 3D points. D0 is a first depth image representing the depth value of the nearest point of the point cloud, and D1 is a second depth image representing the depth value of the farthest point of the point cloud. The first depth image D0 is encoded using, for example, a conventional image / video encoder.

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

[0059] For example, the entire image itself can be considered an image region. The image can also be divided into multiple blocks, and then a block or a group of blocks is an image region.

[0060] 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 as defined in TMC2.

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

[0062] Figure 1 The diagram schematically shows the steps of a method 100 for encoding depth values ​​of points of a point cloud according to an example of the present embodiment.

[0063] In step 110 , the module M1 obtains at least one first point P0 (p) from at least one point of the point cloud PC by projecting the at least one point of the point cloud PC onto a projection plane.

[0064] For example, orthographic projection may be used.

[0065] For each first point P0(p), in step 100, module M1 also obtains at least one other point P(n,0) of the point cloud PC determined from said first point P0(p). Point P(n,0) represents point n in a set of N points, and index 0 refers to the first point P0(p).

[0066] According to an embodiment of step 110 , at least one other point P(n,0) of the point cloud PC relative to the first point P0(p) belongs to a neighborhood around the first point P0(p).

[0067] According to an embodiment, the neighborhood relative to the first point P0(p) includes points of the point cloud PC that are close to said first point P0(p), for example, when the spatial distance between these points and the first point P0(p) is below a given value.

[0068] According to an embodiment, the points of the neighborhood are all aligned with the first point P0(p).

[0069] According to an embodiment, a neighborhood associated with a first point P0 (p) is defined according to an interpolation coding mode ICM determined for said first point P0 (p).

[0070] Defining a neighborhood means defining the number of its elements, their spatial distances, etc…

[0071] According to an embodiment, the neighborhood associated with the first point P0(p) is the image area around the first point P0(p).

[0072] In step 120, module M2 obtains at least one reconstructed point obtained from the at least one first point P0(p).

[0073] According to an embodiment of step 120, at least one reconstruction point Obtained by encoding and decoding the first point P0(p).

[0074] In step 130, module M3 obtains at least one reconstruction point based on the at least one first point P0(p). (Step 120) and at least one interpolation point PI(i,0) determine at least one interpolation coding mode ICM for the at least one first point P0(p), and at least one interpolation point PI(i,0) is defined by the at least one interpolation coding mode ICM to approximate at least one other point P(n,0) of the point cloud PC.

[0075] The interpolation point PI(i,0) represents the interpolation point i relative to the first point P0(p) (index 0) in the set of I interpolation points.

[0076] In a step 140 , the module M4 encodes said at least one first point P0 ( p ) and said at least one interpolation coding mode ICM in a bit stream BT.

[0077] According to an embodiment of step 120 or 140, the depth value of the at least one first point P0(p) is assigned to a first depth image D0, which is encoded in a bitstream BT by a conventional image encoder, such as a HEVC encoder / decoder or an encoder / decoder specified by TMC2.

[0078] According to this embodiment, in step 120, the decoded first depth image is obtained by decoding the first depth image D0, and the at least one reconstruction point is the first depth image after decoding Pixels.

[0079] According to an embodiment of step 130, determining the interpolation coding mode ICM for the first point P0(p) is based on comparing at least one candidate interpolation coding mode CICM k The associated rate distortion cost RDC k , candidate interpolation coding mode CICM k Indicates the candidate interpolation coding mode CICM k Define at least one interpolation point PI k (i,0) (i=1, ..., Ik) specifically encodes at least one other point P(n,0) (n=1, ..., N) associated with the first point P0(p).

[0080] Interpolation point PI k (i,0) means I kThe interpolation point i in the set of interpolation points relative to the first point P0(p) (index 0), I k It is based on the candidate interpolation coding mode CICM k Defined integer value.

[0081] According to an embodiment of step 130, the rate distortion cost RDC k Given by the Lagrange equation:

[0082] RDC k =D k +λ k .R k

[0083] Among them, D k is relative to the candidate interpolation coding mode CICM k The metric, R k It is used to select candidate interpolation coding mode CICM k The bit rate for encoding, λ k is relative to the candidate interpolation coding mode CICM k The Lagrange multiplier of .

[0084] On the Lagrange Multiplier λ k , high values ​​of this multiplier severely penalize the bit rate R k and leads to a low quality of the codec, whereas low values ​​of the multiplier easily allow the bit rate R k A high value of 100% leads to a high quality of the coding. The multiplier may be related to the quantization parameter (QP) used for the picture coding. Typical values ​​of the multiplier range from a few hundred (for very bad coding) to a tenth of unity (for very good coding). These values ​​are indicative and may also depend on the video content.

[0085] According to an embodiment of step 130, the interpolation coding mode ICM may be the one with the lowest rate distortion cost RDC. k Associated candidate interpolation coding mode CICM k .

[0086] According to an embodiment of step 130, the rate distortion cost RDC k Based on Instructions I k Interpolation points PI k A measure of the spatial distance between (i,0) and N other points P(n,0).

[0087] According to an embodiment, the metric D k Given by:

[0088] Dk =Max(dist point (A,B); dist point (B,A))

[0089] in

[0090]

[0091] in, It is the point P(n, 0) indicating the point set A and the nearest interpolation point PI of the point set B. k For example, the Euclidean distance is used as the metric, and the closest point P(n,0) to B in A is the interpolated point PI defined as k (i,0):

[0092]

[0093] Distance point (A,B) Ensure that the reconstruction point is not too far from the first point to avoid points that are irrelevant to encoding and decoding. Distance dist point (B,A) Make sure the first point is not too far from the reconstruction point.

[0094] According to a variant, the method consists in removing repetitions in set A before calculating the rate-distortion cost.

[0095] According to an embodiment of step 130, at least one candidate interpolation coding mode CICM k By creating a refactoring point At least one interpolation point PI of the relevant depth value within the range of the depth value to the maximum depth value k (i,0) is defined.

[0096] according to Figure 2 In a variation of the embodiment of step 130 shown, at least one candidate interpolation coding mode CICM k The definitions are as follows.

[0097] In step 1300, the points are calculated and reconstructed The associated depth value The maximum depth difference (distance) between the depth D(n,0) of at least one point P(n,0)

[0098]

[0099] According to a variation, if If the difference between D(n,0) and D(n,0) falls within a given value range defined by a lower limit LB and an upper limit UB, the difference is ignored. For example, LB=0, UB=4.

[0100] When no difference falls within the given value range, the maximum depth difference is set to 1.

[0101] Then, more than one candidate interpolation coding mode CICM k It can be determined by, for example, selecting different LB values ​​and UB values. In this case, the boundaries LB and UB do not have to be transmitted, because the decoder uses the interpolation coding mode ICM. k The specific values ​​of know in advance what those values ​​are.

[0102] Typically, one candidate interpolation mode may be defined by LB=0 and UB=1, another may be defined by LB=0 and UB=2, and another may be defined by LB=0 and UB=4.

[0103] In step 1310, at least one interpolation point is selected based on the maximum depth difference (distance) to create.

[0104] According to Figure 3 In the variation of step 1310 shown in FIG. 1 , when UB (threshold) = 4, all created interpolation points are aligned with the reconstructed points. aligned, and a stride of 1 is used to continuously assign depth values ​​to new interpolation points.

[0105] In more detail, at least one interpolation point is created as follows:

[0106] ·if is equal to 0 or 1, then as A single interpolation point is created at the same location p of and with the same depth value. Figure 3 Middle, cross 20 and point overlapping.

[0107] ·if is greater than 1, then At least one interpolation point is created at the same position p of the reconstructed point, each interpolation point created has an associated depth value. A step size of 1 is used to continuously assign depth values ​​to newly created interpolation points in the range from the depth value of to the maximum depth value.

[0108] exist Figure 3 The interpolation point is indicated by a cross 21.

[0109] Note Figure 3 In the figure, only a single point P(n,0) is shown for clarity.

[0110] according to Figure 3aIn the variation shown, the interpolated points in the upper half are aligned with the adjacent point that sets the value of deltaMax, rather than aligning all interpolated points along the same axis (ie, above the current point).

[0111] According to the variant, the maximum depth difference is at least equal to the minimum value minDepth:

[0112]

[0113] Here, minDepth is a given value that depends on the thickness of the surface to be reconstructed.

[0114] Then, more than one candidate interpolation coding mode CICM k This can be determined by choosing different minDepth values ​​(usually 0, 1 or 2).

[0115] According to an embodiment of step 130, the rate distortion cost RDC k Also based on the instruction I k Interpolation points PI k A measure of the color distance between the color at (i,0) and the colors of N other points P(n,0).

[0116] According to an embodiment, the metric D k Given by:

[0117] D k =Max(dist geo+text (A,B); dist geo+text (B,A))

[0118] in

[0119]

[0120] where μ is a weighting factor equal to, for example, 0.25, and

[0121]

[0122] in:

[0123] D y =Y p -Y closest (P(n,0),B)

[0124] D u =U p -U closest (P(n,0),B)

[0125] D v =V p -V closest (P(n,0),B)

[0126] And, the triple (Y p ,U p ,V p ) represents the color of point P(n,0) in the YUV color space, and the triplet (Y closest(P(n,0),B) ,U closest(P(n,0),B) ,V closest(P(n,0),B) ) represents the nearest interpolation point Pl of the point P(n,0) in the YUV color space k The color of (i,0).

[0127] According to an embodiment, at least one candidate interpolation coding mode CICM k It also defines how a color is assigned to at least one interpolation point.

[0128] According to an embodiment, the color assigned to an interpolated point is the color of the nearest reconstructed point of said interpolated point.

[0129] In a variant, the color assigned to an interpolated point is a function of the colors of the neighboring reconstructed points of said interpolated point. Function means, for example, a weighted average, a maximum value or a minimum value.

[0130] According to an embodiment of step 110 , the neighborhood is an image region, ie the at least one other point P(n,0) of the point cloud PC associated with the first point P0(p) belongs to the image region.

[0131] According to an embodiment, the rate-distortion cost is obtained by adding rate-distortion costs determined for image sub-regions of said image region.

[0132] According to an embodiment, rate-distortion costs are determined for a plurality of image regions of different shapes and / or different sizes, and the shape and / or size of the image region and the interpolation coding mode associated with the lowest rate-distortion cost are selected.

[0133] According to an embodiment of step 140, the interpolation coding mode ICM is encoded as metadata associated with the image region.

[0134] In a variant, the difference between two interpolation codec modes assigned to two different image regions is encoded as metadata.

[0135] For example, for each shard, each mode RDC for each shard k k (or two RDC k The difference) is signaled in the bitstream BT as follows:

[0136] For all shards U0 DecodeUInt32(bitCountU0) V0 DecodeUInt32(bitCountV0) U1 DecodeUInt32(bitCountU1) V1 DecodeUInt32(bitCountV1) D1 DecodeUInt32(bitCountD1) deltaSizeU0 DecodeExpGolomb() deltaSizeV0 DecodeExpGolomb() NormaAxis Decode <![CDATA[M k ]]> Decode

[0137] Among them, U0, V0, V1, U1, deltaSizeU0, deltaSizeV0 and NormaAxis are syntax elements defined by TMC2.

[0138] For example, for each block, each pattern RDC for each block k k (or two RDC k The difference) is signaled in the bitstream BT:

[0139]

[0140] Among them, "number of candidate tiles", "candidate index", "maxCandidateCount", "block to tile index" and block to tile index are syntax elements defined by TMC2.

[0141] Figure 4 The diagram schematically shows the steps of a method 200 for decoding depth values ​​of points of a point cloud from a bitstream according to an example of the present embodiment.

[0142] In step 210, the module M5 obtains at least one reconstruction point from the bitstream BT

[0143] According to the embodiment of step 210, the module M5 obtains the decoded first depth image by decoding the bit stream BT. And considering relative to the decoded first depth image At least one reconstructed point of at least one pixel

[0144] In a step 220 , the module M6 obtains from the bitstream BT at least one interpolation coding mode ICM, the interpolation coding mode ICM indicating how at least one point in the neighborhood of said at least one reconstructed point is approximated by at least one other interpolation point.

[0145] According to an embodiment of step 220, at least one interpolation coding mode ICM is obtained from metadata extracted from the bitstream BT.

[0146] In step 230, the module M7 generates at least one reconstruction point according to the at least one interpolation coding mode ICM. At least one interpolation point PI(i,0) is created, a depth value being associated with each of the at least one interpolation point.

[0147] Then, the reconstructed point cloud is obtained from the reconstructed points and the interpolation point PI(i,0).

[0148] According to an embodiment of step 230, the depth value associated with the at least one interpolation point is The depth value is within the range of the maximum depth value.

[0149] According to an embodiment, relative to the reconstruction point All interpolation points created are consistent with the reconstruction points aligned, and a stride of 1 is used to continuously assign depth values ​​to new interpolation points.

[0150] According to a variation of the embodiment of step 230, at least one interpolation point is determined according to Figure 2 A variation of the embodiment of step 130 shown is created.

[0151] According to an embodiment of the method, in step 210, the method further includes obtaining a at least one image region of the image.

[0152] In a step 220, an interpolation coding mode ICM is then obtained from the bitstream BT per picture region, said interpolation coding mode ICM indicating how a point in the picture region is approximated by at least one other interpolation point.

[0153] In step 230 , at least one interpolation point per image region is then created according to the interpolation coding mode ICM associated with said image region, and a depth value is associated with each of said at least one interpolation point.

[0154] Figure 5 The method of encoding the geometry and texture of a point cloud as defined in TMC2 is schematically shown.

[0155] Basically, the encoder captures the geometric structure information of the point cloud PC in the first depth image (D0) and the second depth image (D1).

[0156] As an example, the first depth image and the second depth image are obtained in TMC2 as follows.

[0157] Depth slices (a set of 3D points of a point cloud PC) are obtained by clustering these points according to their normal vectors at the points of the point cloud PC. All extracted depth slices are then projected onto a 2D grid and packed, while trying to minimize unused space and guaranteeing that each T×T (e.g., 16×16) block of the grid is associated with a unique slice, where T is a user-defined parameter signaled into the bitstream.

[0158] The depth image is then generated by utilizing the 3D to 2D mapping calculated during the packing process, more specifically, the packing position and size of the projected area for each tile. More precisely, let H(u,v) be the set of points in the current tile that are projected to the same pixel (u,v). The first layer (also called the nearest layer or the first depth image D0) stores the points H(u,v) with the smallest depth values. The second layer (called the farthest layer or the second depth image D1) captures the points H(u,v) with the highest depth values ​​within the interval [D,D+Δ], where D is the depth value of the pixel in the first depth image D0 and Δ is a user-defined parameter that describes the thickness of the surface.

[0159] Then, the first depth image D0 is output to the packing process. A padding process is also used to fill the empty spaces between tiles so as to generate a piecewise smooth first depth image suitable for video compression.

[0160] The generated depth images / layers D0 and D1 are then stored as video frames and compressed using any conventional video codec (such as HEVC).

[0161] The encoder further encodes / decodes the first depth image and the second depth image and decodes the decoded first depth image and the decoded second depth image Deprojection is performed to reconstruct the geometry of the point cloud to capture the texture information of the original point cloud PC in the two texture images. Once reconstructed, color (color transferring) is assigned to each point of the point cloud reconstructed from the color information of the original point cloud PC in a way that minimizes the color information encoding and decoding error.

[0162] According to one embodiment, for each reconstructed point, the color of its nearest point in the original point cloud is assigned as its color to be encoded.

[0163] Then, the first texture image T0 and the second texture image T1 are generated by storing color information to be encoded for each reconstructed point in the same position as the depth image, ie, (i, u, v).

[0164] Figure 6 Schematically shows the Figure 5 Examples of using methods 100 and 200 in encoding methods.

[0165] According to this example, Figure 5 The encoding of the second depth image D1 is Figure 1 The encoding method 100 is replaced, and Figure 5 The second depth image The decoding is Figure 4 The decoding method 200 is used instead.

[0166] exist Figure 6a In the variation shown, Figure 5 The encoding of the first depth image and the second depth image is Figure 1 The encoding method 100 is associated with Figure 5 The decoding of the first depth image and the second depth image is Figure 4 The decoding method 200 is associated with.

[0167] Figure 7 A method for decoding the geometry and texture of a point cloud as defined in the prior art (TMC2) is schematically shown.

[0168] The first depth image after decoding and the decoded second depth image Obtained by decoding the bitstream BT. Possibly, metadata is also decoded to reconstruct the point cloud The geometric structure of .

[0169] Hence, the geometry of the point cloud is reconstructed by deprojecting the decoded first depth image and the decoded second depth image and possibly the metadata.

[0170] Figure 8 Schematically shows the Figure 7 An example of using method 200 in a decoding method.

[0171] According to this example, Figure 7 The decoding of the first depth image and the second depth image is Figure 4 The decoding method is replaced.

[0172] exist Figure 8a In the variation shown, Figure 7 The decoding of the first depth image and the second depth image is Figure 4 The decoding method 200 is associated with.

[0173] exist Figure 1-Figure 8a In the embodiment, a module is a functional unit that may or may not be associated with a distinguishable physical unit. For example, these modules or some of them may be grouped together in a unique component or circuit, or constitute the functions of the software. In contrast, some modules may consist of independent physical entities. Devices compatible with this embodiment are either implemented using pure hardware (such as ASIC or FPGA or VLSI, respectively, application specific integrated circuits, field programmable gate arrays, and very large scale integrated circuits), or implemented from several integrated electronic components embedded in the device, or implemented from a mixture of hardware and software components.

[0174] Fig. 9A block diagram of an example of a system implementing various aspects and embodiments is shown. System 9000 may be embodied as a device including various components described below and 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, networked home appliances, and servers. The elements of system 9000 may be embodied in a single integrated circuit, multiple ICs, and / or discrete components, either individually or in combination. For example, in at least one embodiment, the processing elements and encoder / decoder elements of system 9000 are distributed over multiple ICs and / or discrete components. In various embodiments, system 9000 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, system 9000 is configured to implement one or more aspects described in this document.

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

[0176] The system 9000 includes an encoder / decoder module 9030, which is configured to, for example, process data to provide an encoded video or a decoded video, and the encoder / decoder module 9030 may include its own processor and memory. The encoder / decoder module 9030 represents a (multiple) module that can be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 9030 may be implemented as an independent element of the system 9000, or may be combined in the processor 9010 as a combination of hardware and software known to those skilled in the art.

[0177] Program code to be loaded onto the processor 9010 or the encoder / decoder 9030 to perform various aspects described in this document may be stored in the storage device 9040 and subsequently loaded onto the memory 9020 for execution by the processor 9010. According to various embodiments, one or more of the processor 9010, the memory 9020, the storage device 9040, and the encoder / decoder module 9030 may store one or more of the various items during the execution of the processes described in this document. Such stored items may include, but are not limited to, input video, decoded video, point clouds, portions of reconstructed point clouds or decoded video, bitstreams, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operation logic.

[0178] In several embodiments, memory internal to the processor 9010 and / or encoder / decoder module 9030 is used to store instructions and to provide working memory for processing required during encoding or decoding.

[0179] However, in other embodiments, memory external to the processing device (e.g., the processing device may be the processor 9010 or the encoder / decoder module 9030) is used for one or more of these functions. The external memory may be memory 9020 and / or storage device 9040, such as dynamic volatile memory and / or 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 for MPEG-2, HEVC, VVC (Versatile Video Codec), or TMC2.

[0180] Input to the elements of system 9000 may be provided through various input devices as shown in block 9130. Such input devices include, but are not limited to: (i) an RF section 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.

[0181] In various embodiments, the input device of block 9130 has associated corresponding input processing elements known in the art. For example, the RF portion may be associated with the following elements required: (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 to a narrower frequency band to select a signal frequency 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 portion of various embodiments includes one or more elements that 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 portion 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.

[0182] 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 by filtering, down-converting, and filtering again to a desired frequency band.

[0183] 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.

[0184] 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.

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

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

[0187] The system 9000 includes a communication interface 9050 capable of communicating with other devices via a communication channel 9060. The communication interface 9050 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 9060. The communication interface 9050 may include, but is not limited to, a modem or a network card, and the communication channel 9060 may be implemented, for example, in a wired and / or wireless medium.

[0188] In various embodiments, data is streamed to the system 9000 using a Wi-Fi network such as IEEE 802.11. The Wi-Fi signals of these embodiments are received through a communication channel 9060 suitable for Wi-Fi communications and a communication interface 9050. The communication channel 9060 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 over-the-top communications.

[0189] Other embodiments provide streaming data to the system 9000 using a set top box that transmits the data via the HDMI connection of the input box 9130.

[0190] Still other embodiments use the RF connection of input box 9130 to provide streaming data to system 9000.

[0191] The system 9000 can provide output signals to various output devices, including a display 9100, speakers 9110, and other peripheral devices 9120. In various examples of embodiments, the other peripheral devices 9120 include one or more of a stand-alone DVR, an optical disc player, a stereo system, a lighting system, and other devices that provide functionality based on the output of the system 9000.

[0192] In various embodiments, control signals are transmitted between the system 9000 and the display 9100, speakers 9110, or other peripherals 9120 using signaling such as AV.Link, CEC, or other communication protocols that support device-to-device communication with or without user intervention.

[0193] Output devices may be communicatively coupled to the system 9000 through respective interfaces 9070 , 9080 , and 9090 via dedicated connections.

[0194] Alternatively, the output device may be connected to the system 9000 using the communication channel 9060 via the communication interface 9050. The display 9100 and the speaker 9110 may be integrated into a single unit with other components of the system 9000 in an electronic device (eg, a television).

[0195] In various embodiments, the display interface 9070 includes a display driver, such as a timing controller (TCon) chip.

[0196] Alternatively, the display 9100 and speakers 9110 may be separate from one or more other components, for example if the RF portion of the input 9130 is part of a stand-alone set-top box. In various embodiments where the display 9100 and speakers 9110 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.

[0197] according to Fig.10 In the example of the present embodiment shown, in the context of a transmission between two remote devices A and B on a communication network NET, device A comprises a processor associated with memories RAM and ROM, which is configured to implement the Figure 1-Figure 3a or Figure 5-Figure 6 In accordance with the method described above, device B comprises a processor associated with memories RAM and ROM, which is configured to implement the method described above. Figure 4 or Figure 7-Figure 8 Relatedly described methods.

[0198] According to an example, the network is a broadcast network adapted to broadcast still pictures or video pictures from device A to decoding devices including device B.

[0199] The signal intended to be transmitted by the device A carries a 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 a neighborhood of the at least one reconstructed point is approximated by at least one other interpolated point.

[0200] For example, if Figure 1-Figure 3a As explained above, the encoded data is obtained.

[0201] Fig.11 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. For example, bits of the header H are dedicated to representing an interpolation coding mode ICM. Therefore, at least one bit of the header H is dedicated to representing at least one interpolation coding mode ICM.

[0202] The implementation of the spatial adaptive reconstruction mode in TMC2 is as follows:

[0203] 1. Possibility to encode a single depth & texture layer - Currently TMC2 always encodes two layers. This is implemented by adding encoder parameters / bitstream parameters to signal the number of depth & texture layers (both are equal) at GOP level.

[0204] 2. In single-layer mode, use the optimization framework to reconstruct the point pattern ( It is called point local reconstruction mode ( PointLocal Reconstruction Mode (PLRM) is locally adapted to the characteristics of the point cloud. The optimization is performed in the encoder using a method similar to RDO, thereby adding the required signaling in the bitstream so that the decoder knows that the local reconstruction mode is to be used on a per-point basis. This is done in regions of size (blocks at the resolution of the occupancy map, 16×16 pixels in this contribution). The process is named Point Local Reconstruction Framework (Point Local Reconstruction Framework, PLRF).

[0205] Signaling the PLRM requires a dedicated arithmetic encoder, which increases the complexity of the encoder and decoder.

[0206] At least one embodiment transmits (signal) data in a point local reconstruction mode (PLRM) (ie, at least one interpolation codec mode) as image data.

[0207] Each prediction mode is encoded into block to patch metadata information which is encoded into auxiliary patch information (using an arithmetic encoder).The current implementation tries up to 10 different modes. Fig.12 The different modes decided on the encoder side are shown, as well as the distribution of usage of each mode in TMC2 v3.0 software with respect to rate and configuration (full intra mode, random access mode).

[0208] In an embodiment, data about the PLRM is sent to the decoder using block-to-slice metadata and encoded by an arithmetic encoder.

[0209] The occupancy map (occupancy map precision is B0×B0 blocks, i.e. 4×4 pixels) is encoded into the video (using HEVC). It consists of a binary map that indicates for each cell of the grid whether it belongs to empty space or to a point cloud. The use of the occupancy map can be extended in the case of PLRF to convey (signal) this information.

[0210] At least one embodiment of the present embodiments relates to a way of encoding the PLRM into the occupancy map, since it is the most likely mode available for encoding such information in the current TMC2.

[0211] The main idea is to show a way how to use occupancy maps to convey information about the local reconstruction pattern of points. So far, occupancy maps contain "0" to indicate that the corresponding 3D block (point cloud) is empty, or contain "1" to indicate that the 3D block is fully occupied, such as Fig.12 At least one embodiment obtains more values ​​to indicate PLRM.

[0212] In more detail, at least one of the present embodiments involves the following method:

[0213] For each block of the occupancy map precision (4×4), the PLRM is set as follows:

[0214] - If the block is empty, the block is set to 0.

[0215] - If the block is occupied, the value assigned to the block corresponds to a point-local reconstruction mode in the range [1...N], where N is the maximum number of point-local reconstruction modes to be applied. Note that a value of "1" still indicates that the block is occupied, and no supplementary points will be added to the reconstructed point cloud utilizing that mode.

[0216] According to an embodiment, since the point local reconstruction mode is at the occupancy map resolution (16×16), the information on each block at the occupancy map precision (4*4) is repeated unless the block is unoccupied and is set to 0 in this case.

[0217] Fig.13a use Fig.13 The example of shows an example of how to encode the PLRM into an occupancy map. It shows the use of four modes of "1", "2", "5" and "7". "0" means that the reconstructed block is empty.

[0218] Note that PLRM can be done with occupied precision (4×4). In this case, the encoding information of PLRM may vary from block to block, such as Fig.13b This will make the reconstruction process more precise.

[0219] A variation of the PLRM code is to assign value ranges to different types of reconstructions (PLRM and other applicable reconstructions):

[0220] - If the block is empty, the block is set to 0 (as today).

[0221] - If the block is occupied, the first range [0; m] is reserved for allocating PLRMs, the second range

[0222] [m;N] is reserved to assign information describing another method of point cloud reconstruction.

[0223] Another variant of implementation is to use a bit mask:

[0224] - If the block is empty, the block is set to 0 (like today).

[0225] - If the block is occupied, we use N bits of the component in the following way:

[0226] ○ Assign PLRM to the first n bits

[0227] ○ Allocate (Vn) bits to indicate other reconstruction modes

[0228] For example, with the component encoded on 10 bits, 4 bits are used to encode the information "I" and the other 6 bits are used to encode the PLRM information.

[0229]

[0230] Another variation of the implementation is to use a hash map to determine the different PLRMs. It is possible to specify a PLRM for each layer.

[0231] For example, if PLRM0 is the reconstruction codec mode of layer 0, PLRM1 is the reconstruction codec mode of layer 1, and PLRM2 is the reconstruction codec mode of layer 2, the occupancy map may be filled as follows:

[0232] - If the block is empty, the block is set to 0 (like today).

[0233] -If the block is occupied, the hash table can be as follows:

[0234]

[0235] Another variation could be to use the chrominance component of the occupancy map to code the PLRM information.

[0236] The main advantages are avoiding encoding the data into auxiliary tile information and leveraging existing hardware for video compression of occupancy maps.

[0237] It follows the idea of ​​using the occupancy map information as a collector of how to reconstruct the point cloud.

[0238] Note that this is the most likely case of how the point-local reconstruction pattern is transmitted within TMC2.

[0239] The various processes and features described herein may be embodied in various equipment or applications. The example of this equipment includes encoder, decoder, post-processor for processing the output from the decoder, pre-processor, video encoder, video decoder, video codec, network server, set-top box, laptop computer, personal computer, mobile phone, PDA and any other equipment or other communication equipment for processing pictures or videos. It should be clear that equipment can be mobile and can even be installed in a mobile vehicle.

[0240] In addition, these methods can be implemented by instructions executed by a processor, and such instructions (and / or data values ​​generated by the implementation) can be stored on a computer-readable storage medium. A computer-readable storage medium can take the form of a computer-readable program product embodied in one or more computer-readable media and having a computer-readable program code executable by a computer embodied 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 therein. A computer-readable storage medium can be, for example, but not limited to, an electronic, 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 can 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 disk; hard disk; read-only memory (ROM); erasable programmable read-only memory (EPROM or flash memory); portable compact disk read-only memory (CD-ROM); optical storage device; magnetic storage device; or any suitable combination of the foregoing.

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

[0242] 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, for example, as a device configured to perform a process and a device (such as a storage device) including a processor-readable medium having instructions for performing the process. Furthermore, in addition to or in lieu of instructions, a processor-readable medium may store data values ​​generated by an embodiment.

[0243] It will be apparent to those skilled in the art that embodiments may generate various signals that are formatted to carry information that can be stored or transmitted, for example. The information may include, for example, instructions for executing a method, or data generated by one of the described embodiments. For example, a signal may be formatted to carry as data the rules for writing or reading the grammar of the described examples of the present embodiment, or to carry as data the actual grammar values ​​written by the described examples 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. 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 well known, signals may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor-readable medium.

[0244] Many embodiments have been described. However, it should be understood that various modifications may be made. For example, elements of different embodiments may be combined, supplemented, modified or removed to produce other embodiments. In addition, it will be appreciated by those skilled in the art that other structures and processes may be used to replace those disclosed, and the resulting embodiments will perform at least substantially the same (multiple) functions in at least substantially the same (multiple) manners to achieve at least substantially the same (multiple) results as the disclosed embodiments. Accordingly, the present application contemplates these and other embodiments.

Claims

1. A method comprising: Obtaining a reconstructed 2D point from a first 2D point obtained by projecting the 3D point of the point cloud onto a projection plane; determining an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud; The interpolation coding mode is encoded.

2. The method according to claim 1, wherein: The interpolation codec mode is signaled for each block or slice of the point cloud.

3. The method according to claim 1, wherein: The method also includes assigning the depth value of the first 2D point to a pixel value of a first depth image, obtaining an encoded first depth image by encoding the first depth image, and obtaining a decoded first depth image by decoding the encoded first depth image, the reconstructed 2D point being a pixel of the decoded first depth image.

4. The method according to claim 1, wherein: The rate-distortion cost associated with the at least one candidate interpolation coding mode is based on a metric indicative of a spatial distance between the at least one 2D interpolation point defined according to the interpolation coding mode and the at least one other 2D point.

5. The method according to claim 4, wherein: The rate-distortion cost associated with the at least one candidate interpolation coding mode is further based on a metric indicative of a color distance between a color of the at least one interpolated 2D point defined according to the candidate interpolation coding mode and a color of the at least one other 2D point.

6. The method according to claim 4, wherein: The metric takes into account, on the one hand, the spatial distance between at least one other 2D point and one of the at least one 2D interpolation points closest to the at least one other 2D point, and, on the other hand, the spatial distance between at least one 2D interpolation point and one of the at least one other 2D points closest to the at least one 2D interpolation point.

7. The method according to claim 1, wherein: At least one candidate interpolation coding mode is used to reconstruct at least one 2D interpolation point having an associated depth value ranging from a depth value of the reconstructed 2D point to a maximum depth value.

8. The method according to claim 1, wherein: A neighborhood around the first 2D point is an image region, and the at least one other 2D point belongs to the image region.

9. A method comprising: reconstructing at least a first point of the point cloud encoded in the bitstream; decoding at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood around at least one first point and a minimum depth value; At least one 2D interpolation point of the point cloud is reconstructed based on the at least one first point and the interpolation coding mode.

10. The method according to claim 9, wherein: The interpolation codec mode is signaled for each block or slice of the point cloud.

11. The method according to claim 9, wherein: The depth value associated with the at least one 2D interpolation point is within a range from the depth value of the at least one first point to a maximum depth value.

12. The method according to claim 11, wherein: A depth value associated with the at least one 2D interpolated point is determined based on the minimum depth value and a maximum depth difference determined between the decoded depth of the at least one first point and the depth of at least one point in the neighborhood.

13. The method according to claim 9, wherein: The interpolation coding mode includes data representing the number of elements of the neighborhood.

14. The method according to claim 9, wherein: At least two interpolation coding modes are determined by different values ​​of the minimum depth value.

15. A device comprising at least one processor, the at least one processor being configured to: Obtaining a reconstructed 2D point from a first 2D point obtained by projecting the 3D point of the point cloud onto a projection plane; determining an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud; The interpolation coding mode is encoded.

16. The device according to claim 15, wherein: The rate-distortion cost associated with the at least one candidate interpolation coding mode is based on a metric indicative of a spatial distance between the at least one 2D interpolation point defined according to the interpolation coding mode and the at least one other 2D point.

17. The device according to claim 16, wherein: The rate-distortion cost associated with the at least one candidate interpolation coding mode is further based on a metric indicative of a color distance between a color of the at least one interpolated 2D point defined according to the candidate interpolation coding mode and a color of the at least one other 2D point.

18. The apparatus according to claim 16, wherein: The metric takes into account, on the one hand, the spatial distance between at least one other 2D point and one of the at least one 2D interpolation points closest to the at least one other 2D point, and, on the other hand, the spatial distance between at least one 2D interpolation point and one of the at least one other 2D points closest to the at least one 2D interpolation point.

19. A device comprising at least one processor, the at least one processor being configured to: reconstructing at least a first point of the point cloud encoded in the bitstream; decoding at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood around at least one first point and a minimum depth value; At least one 2D interpolation point of the point cloud is reconstructed based on the at least one first point and the interpolation coding mode.

20. The apparatus of claim 19, wherein: The depth value associated with the at least one 2D interpolation point is within a range from the depth value of the at least one first point to a maximum depth value.

21. A non-transitory computer-readable medium comprising instructions for causing one or more processors to: Obtaining a reconstructed 2D point from a first 2D point obtained by projecting the 3D point of the point cloud onto a projection plane; determining an interpolation coding mode based on a rate-distortion cost associated with at least one candidate interpolation coding mode, the at least one candidate interpolation coding mode defining a neighborhood and a minimum depth value around the reconstructed 2D point for reconstructing at least one 2D interpolation point based on the reconstructed 2D point, the at least one 2D interpolation point approximating at least one other 2D point of the point cloud; The interpolation coding mode is encoded.

22. A non-transitory computer-readable medium comprising instructions for causing one or more processors to: reconstructing at least a first point of the point cloud encoded in the bitstream; decoding at least one interpolation coding mode from the bitstream, the interpolation coding mode defining a neighborhood around at least one first point and a minimum depth value; At least one 2D interpolation point of the point cloud is reconstructed based on the at least one first point and the interpolation coding mode.