Methods and apparatus for motion correction at decoder side for point cloud attributes prediction

The method addresses the challenge of integrating motion estimation and compensation in point cloud compression by using a 3D motion transform and hierarchical encoding for attribute prediction, resulting in efficient and accurate compression of dynamic point clouds.

WO2025056412A1PCT designated stage expired Publication Date: 2025-03-20INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/074799
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-12
Filing Date
2024-09-05
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

Existing point cloud compression schemes struggle to integrate motion estimation and compensation optimally for both geometry and attributes in dynamic point clouds, leading to inefficiencies in data transmission and prediction accuracy.

Method used

A method for motion correction at the decoder side for point cloud attributes prediction, which uses a 3D motion transform to predict attributes and applies a hierarchical, multiresolution encoding scheme on top of an octree representation of the geometry, allowing for small corrections to attribute temporal predictions using decoded attribute information.

Benefits of technology

This approach enables efficient motion-compensated prediction of point cloud attributes without degrading geometry encoding performance or increasing transmission costs, achieving accurate and efficient compression of dynamic point clouds.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024074799_20032025_PF_FP_ABST
    Figure EP2024074799_20032025_PF_FP_ABST
Patent Text Reader

Abstract

Methods and devices for encoding and decoding a sequence of point clouds are disclosed. Within a compression scheme for dynamic point clouds with motion compensated inter-frame prediction, a correction process of the motion compensated temporal prediction of point cloud attributes is introduced. The methods avoid transmitting any extra information in the motion data channel but perform the correction only with attribute data available at decoder side. The 3D motion transform predicting the geometry is also used to predict the attributes, making a temporally predicted point cloud with attributes as input to the attribute encoder and decoder. The attributes are encoded with a hierarchical, multiresolution approach, on top of an octree representation of the reconstructed geometry. This hierarchical encoding scheme is leveraged to compute small corrections of the attribute temporal predictions, making use of decoded attribute information already available during the decoding process, but at coarser resolution level.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] METHODS AND APPARATUS FOR MOTION CORRECTION AT DECODER SIDE FOR POINT CLOUD ATTRIBUTES PREDICTION

[0002] 1. Technical Field

[0003] The present principles generally relate to the domain of compression of a point cloud comprising attribute data. The present document is also understood in the context of the encoding, the formatting and the decoding of data representative of a point cloud for example for a rendering of volumetric content on end-user devices such as mobile devices or Head- Mounted Displays (HMD). In particular, the present document relates to motion correction at decoder side for point cloud attributes prediction.

[0004] 2. Background

[0005] The present section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present principles that are 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 principles. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

[0006] Advances in 3D (three-dimensional) capturing and rendering technologies are enabling new applications and services in the fields of autonomous driving, cultural heritage archival, immersive telepresence and virtual / augmented reality. Point clouds have arisen as one of the main 3D scene representations for such applications. A point cloud frame consists of a set of 3D points, each point being represented by its 3D position and possibly several rendering attributes such as color, transparency, reflectance, normal vector, etc. Points clouds may be dynamic. A sequence of temporally successive points clouds is captured. Each point cloud is then a frame of the sequence and is rendered according to a timestamp within the sequence. The compression of dynamic point clouds is a technical challenge as the amount of data is huge.

[0007] Some point cloud encoding schemes combining different tools are proposed, leveraging the spatial (intra-frame) and temporal (inter-frame) redundancies. 3D motion estimation algorithms can be used in such schemes, for example based on iterative closest point algorithm (ICP), or block matching methods or graph matching techniques. These approaches can apply to point cloud compression scheme with motion compensated inter-frame prediction. However, integrating motion estimation and compensation in a global point cloud compression scheme with temporal prediction of both geometry and attributes in an optimal way remains an open problem.

[0008] 3. Summary

[0009] Methods and devices for encoding and decoding a sequence of point clouds are disclosed. Within a compression scheme for dynamic point clouds with motion compensated inter-frame prediction, a correction process of the motion compensated temporal prediction of point cloud attributes is introduced. The methods avoid transmitting any extra information in the motion data channel but perform the correction only with attribute data available at decoder side. The 3D motion transform predicting the geometry is also used to predict the attributes, making a temporally predicted point cloud with attributes as input to the attribute encoder and decoder. The attributes are encoded with a hierarchical, multiresolution approach, on top of an octree representation of the reconstructed geometry. This hierarchical encoding scheme is leveraged to compute small corrections of the attribute temporal predictions, making use of decoded attribute information already available during the decoding process, but at coarser resolution level.

[0010] The present principles relate to a method for encoding a point cloud. The method comprises obtaining a sequence of point clouds with attributes. The already decoded point clouds are compensated and the obtained movement vectors are encoded in a data stream. The geometry of a current point cloud is compressed according to the obtained movement vectors. Then, the attributes of the current point cloud are transferred onto the geometry of the decompressed point cloud. The point cloud is decomposed in an octree and, for each level of the octree, from a root to leaves: a prediction of the attributes of a current node of the octree is selected, applied and residue values are obtained for each child node of the current node. Then, the motion compensation is modified according to the attributes of each child node decoded according to the prediction mode and the residue values. Finally selected predictions and residue values for each node of the octree are entropy encoded in the data stream. In an embodiment, the prediction is an inter-frame prediction determined according to a previously decoded point cloud of the sequence. In another embodiment, the prediction is a weighted average between an intra-prediction and an inter-prediction. The present principles also relate to a device comprising a memory associated with the processor that is configured to implement the above method according to any one of the embodiments described herein.

[0011] The present principles also relate to a method for decoding a point cloud of a sequence of point clouds. The method comprises obtaining movement vectors for a geometry of the point cloud from a data stream. The geometry of the point cloud is decompressed according to already decompressed point clouds of the sequence compensated with the movement vectors. The point cloud is decomposed in an octree. Then, for each level of the octree, from a root to leaves, a prediction obtained from the data stream is applied to the attributes to the child nodes of a current node of the octree and residue values obtained from the data stream are added to each child node. Then, the motion compensation is modified according to the attributes of each child node decoded according to the prediction mode and the residue values and the modified point cloud is rendered. The rendered point cloud might be displayed according to a point of view.

[0012] The present principles also relate to a device comprising a memory associated with the processor that is configured to implement the above method according to any one of the embodiments described herein.

[0013] 4. Brief Description of Drawings

[0014] The present disclosure will be better understood, and other specific features and advantages will emerge upon reading the following description, the description making reference to the annexed drawings wherein:

[0015] - Figure 1 illustrates a compression scheme for geometry and attributes of a dynamic point cloud, with inter-frame prediction and a motion prediction correction block according to the present principles;

[0016] - Figure 2 depicts a decoder scheme corresponding to the encoding scheme of Figure 1, according to the present principles;

[0017] - Figure 3 shows an example architecture of a device which may be configured to implement a method for encoding or decoding a point cloud according to the present principles;

[0018] - Figure 4 shows an example of an embodiment of the syntax of a stream when the data are transmitted over a packet-based transmission protocol; - Figure 5 illustrates a node at level 2, with its original and corrected corresponding 3D- block in predicted frame;

[0019] - Figure 6 depicts an example of temporal prediction for a node of an octree representative of the point cloud;

[0020] - Figure 7 depicts a correction pattern with 18 candidates;

[0021] - Figure 8 illustrates an example of an average color value (for example black) of the current node.

[0022] 5. Detailed description of embodiments

[0023] The present principles will be described more fully hereinafter with reference to the accompanying figures, in which examples of the present principles are shown. The present principles may, however, be embodied in many alternate forms and should not be construed as limited to the examples set forth herein. Accordingly, while the present principles are susceptible to various modifications and alternative forms, specific examples thereof are shown by way of examples in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the present principles to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present principles as defined by the claims.

[0024] The terminology used herein is for the purpose of describing particular examples only and is not intended to be limiting of the present principles. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises", "comprising," "includes" and / or "including" when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. Moreover, when an element is referred to as being "responsive" or "connected" to another element, it can be directly responsive or connected to the other element, or intervening elements may be present. In contrast, when an element is referred to as being "directly responsive" or "directly connected" to other element, there are no intervening elements present. As used herein the term "and / or" includes any and all combinations of one or more of the associated listed items and may be abbreviated as" / ". It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the teachings of the present principles.

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

[0026] Some examples are described with regard to block diagrams and operational flowcharts in which each block represents a circuit element, module, or portion of code which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in other implementations, the function(s) noted in the blocks may occur out of the order noted. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending on the functionality involved.

[0027] Reference herein to “in accordance with an example” or “in an example” means that a particular feature, structure, or characteristic described in connection with the example can be included in at least one implementation of the present principles. The appearances of the phrase in accordance with an example” or “in an example” in various places in the specification are not necessarily all referring to the same example, nor are separate or alternative examples necessarily mutually exclusive of other examples.

[0028] Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims. While not explicitly described, the present examples and variants may be employed in any combination or sub-combination.

[0029] Motion estimation is an essential processing block of any compression scheme for point cloud attributes with inter-frame prediction. It takes as input two successive point cloud frames PCt-(the reference frame) and PCt(the current frame) and outputs a 3D motion vector field M which describes the displacements of the points of the reference point cloud frame PCt-during time interval [t — 1, t] in order to generate a prediction of the current point cloud frame PCt. A point cloud frame PC consists of a geometry component G = {pn= X, Y, Z)n, n G [1..7V]} containing the positions of points and an attribute component A containing the attributes of the points, for example their colour A = {an= (R, G, B)n, n G [1. , 1V]}. Attributes may also encode other kind of information like transparency, reflectance, normal vector, etc. The number of points N may change from frame to frame. The motion information M from which the 3D motion vector field M is derived can be represented with various models, from simple translations per block with voxel accuracy to complex non-rigid deformation per arbitrary-shaped clusters with sub-voxel accuracy.

[0030] In a point cloud compression framework, the original geometry is first compressed, then input attributes are transferred on a geometry reconstructed after decompression of the compressed original geometry. The transferred attributes are then compressed. So, at decoder side, the reconstructed geometry is available when decoding the attributes. The present principles fit such a scheme and focuses on attribute compression. The present principles are agnostic about the method used for geometry compression.

[0031] Inter-frame motion estimation is to provide an accurate temporal prediction of the current point cloud frame to encode, both for its geometry component and its attributes. In a first approach, the motion estimation processing block minimizes the geometry prediction error dist(G , Gt^ where G is the prediction of the point positions of current point cloud frame obtained by displacing the points of previous frame along the motion vectors. As the motion information is transmitted to the decoder, the cost function to be minimized by the motion estimation algorithm is a rate distortion optimization criterion where 7?(M) is an estimate of the bitrate of the motion information. This first approach is efficient for predicting geometry while minimizing the transmission cost of motion vectors but there is no guarantee that the obtained motion field is also a good predictor for the attributes of points. In a second approach, the distortion function combines the geometry and attribute prediction errors: where A is the prediction of the point attributes of current point cloud frame obtained by displacing the points of previous frame along the motion vectors. This second approach offers a better prediction of attributes but at the expense of a worse encoding of geometry and it is difficult to find a trade-off by adjusting parameter . In a third approach, two 3D motion fields are estimated: the first one for predicting geometry, the second one for predicting attributes. Both are transmitted. This provides a good prediction of both geometry and attributes, but at the expense of twice more motion data to transmit. According to the present principles, an efficient motion-compensated prediction of point cloud attributes is provided, without degrading the geometry encoding performance or inflating the transmission cost of motion vectors within a compression scheme for dynamic point clouds. Within a compression scheme for dynamic point clouds with motion compensated inter-frame prediction, the present principles introduce a correction process of the motion compensated temporal prediction of point cloud attributes. According to the present principles, no extra information is transmitted in the motion data channel, but the correction is only performed with attribute data available at decoder side. The 3D motion transform predicting the geometry is also used to predict the attributes, making a temporally predicted point cloud with attributes as input to the attribute encoder and decoder. The attributes are encoded with a hierarchical, coarse to fine, multiresolution approach, on top of an octree representation of the reconstructed geometry. Such hierarchical encoding scheme is leveraged to compute small corrections of the attribute temporal predictions, making use of decoded attribute information already available during the decoding process, but at coarser resolution level.

[0032] Figure 1 illustrates a compression scheme 10 for geometry and attributes of a dynamic point cloud, with inter-frame prediction and a motion prediction correction block according to the present principles. In such a scheme, a block-based motion estimation 11 is performed between two successive point cloud frames, the current ‘target’ frame to encode and a previously decoded reference frame. A block-based output motion format is assumed, providing a motion vector for each occupied cube (or ‘node’ in an octree-based representation) of the target point cloud frame, pointing to the matched location in the reference point cloud frame. A geometry encoder compresses the geometry, yielding a reconstructed (decoded) geometry. The geometry encoder takes advantage of 3D motion estimation to remove temporal redundancies and achieve enhanced geometry compression rate. Any geometry compression algorithm may embody this module. In case of lossy compression, the reconstructed geometry is different from the input geometry. A motion-compensated inter-frame prediction 12 of rendering attributes of target point cloud frame is performed: points of decoded geometry are displaced in the direction of the estimated motion vectors, and the corresponding decoded rendering attributes At-1make the temporal prediction of current frame rendering attributes which is mapped onto the temporal prediction of geometry Gtp. According to the present principles, a motion prediction correction module 13 takes the output of module 12 as input. The motion correction based on attribute prediction is performed by module 13 with available information at decoder side. The correction is performed after motion compensation, in the predicted point cloud frame PC } obtained by motion compensating the previous decoded frame with motion vector field M . The correction is embedded into a hierarchical decoding loop, in which the resolution levels of the octree representation of the point cloud are decoded one after the other, starting at the root node down to the leaf nodes at full resolution. When decoding the child nodes attributes of a node at current level , the average value (the ‘DC’ value) is known as having been decoded at previous level d-1. Then, the correction process at encoder is replicated within the decoder; only translational corrections are considered.

[0033] Figure 2 depicts a decoder scheme 20 corresponding to the encoding scheme of Figure

[0034] 1, according to the present principles. The same modules 12 and 13 and same principles are used.

[0035] The current point cloud frame is first decomposed into resolution levels upon an octree representation, and the attribute encoding is performed in a hierarchical manner, from root node down to the leaf nodes. An example of such attribute encoding scheme is the RAHT transform, for example as implemented within the G-PCC encoder. For each node (i.e. occupied voxel) at current resolution level d in the current point cloud frame, the points within the 3D block at corresponding position in the predicted point cloud frame provide a temporal prediction for the attributes of the child nodes of this current node to encode. Figure 5 illustrates a node at level

[0036] 2, with its original and corrected corresponding 3D-block in predicted frame. In Figure 6, the example of temporal prediction for a node, prior to RAHT transform is depicted. In this example, the average (DC) value of the coefficients of the child nodes of a node at current level has already been encoded when performing the attribute encoding at previous, coarser, resolution level. This DC value will thus be available at decoder stage, prior to decoding the child node attributes, as the coarser resolution level will have already been decoded. Small ±A variations around the current position are tested in the predicted frame to provide a better prediction.

[0037] Figure 7 depicts a correction pattern with 18 candidates. Eighteen is an example and is not limiting. For example, allowing A increments along x, y and z simultaneously yields eight more predictions. The value of A is set proportional the node size (e.g. !4 or *4) and therefore changes from one level to another, but is constant for all nodes of a given level. Let D be the set of tested displacements, the corrected location 8corof the temporal prediction block in predicted frame is the one minimizing the attribute distance according to equation Eql.

[0038] Eql: 8cor= arg

[0039] 8 where Ap(b + 8) is the averaged value of the attributes of the N(b + 8) points present in the displaced block in temporal prediction frame as defined by equation Eq2.

[0040] Ad-l t(b) is the DC attribute value of block b (current node) in current point cloud frame, and dist(A, B) is the distance between two attribute vectors A and B, for example the Euclidean norm of their difference || — B ||2. Random motion corrections in the presence of very small differences between different values of dist( ), when tested with different values of displacement 8 , can occur due to computational noise. In an embodiment, to avoid this phenomenon, constraints may be added to the determination of 8. First, the initial position (8 = 0) is corrected only if the attribute distance is decreased by a given (significant) margin Ti as described by equation Eq3.

[0041] Where: 8cor= arg min[dist(Ad-l t(b), Ap(b + <5)}

[0042] 5eo\{o}

[0043] If several corrections correspond to nearly identical attribute distances (not farther apart from each other than threshold T2) the choice is made based on predefined rules, for example smallest displacement first, then closest displacement to average correction in neighbouring.

[0044] According to the present principles, when decoding the voxels of a node at a given resolution level, the averaged (DC) value of the attributes is known. The motion correction pointing to the block in predicted frame which average attribute value best approximates the current DC value is computed identically at both encoder and decoder side. Figure 8 illustrates an example of an average color value (for example black) of current node 81. Node 81 is known at the decoding step, and the initial corresponding block in the temporally predicted point cloud contains two points 82 of a different color (for example white to maximize the difference). The motion correction provides a predicted block 83 with identical average color (black in the example of Figure 8) as the current block to encode, and is deemed to provide a better prediction of the child nodes within.

[0045] In another embodiment, instead of assigning the same attribute ‘DC’ value to all the points (child nodes) of the current node when determining the motion correction, different attribute values estimated from the coarser level are assigned, depending on the position of the child nodes in the current node. Neighbouring nodes at coarser level are used for that purpose. They may be classified as direct parent node (PN), ‘uncles’ sharing a face with child node (UF) or ‘uncles’ sharing an edge (UE). In this embodiment, the attribute values of current child nodes are computed as a weighted sum of attributes of parent node, face uncles and edge uncles, the number of uncles of a given type varying depending on the position of the child node within the current node. The attribute distance to minimize is computed as the average distance between predicted attributes Ad-l t(pt) of the N points pt in current node (predicted from their parent and uncle attribute values) and attributes Ap(pt+ 5) of displaced points pL+ 8 in temporal point cloud prediction as defined in equation Eq4.

[0046] With NUF(pi) and NUE(pi) the number of “face uncles” and “edge uncles” of current point pp, WPN. WUF. WUEthe (fixed) weights of parent nodes, face uncles and edge uncles;PN, the decoded attribute of parent node of pp, dj^and dpEthe decoded attributes of the jthand kthface uncle and edge uncle respectively; and Appi + d) = pt + 8 is occupied)? ap: Penalty. a! is the attribute value in temporal point cloud prediction at position pt+ 8 if this position is occupied, else a Penalty value is given to prevent decreasing the number of temporally matched child nodes after correction. The weights assigned to parent, face uncle and edge uncle in the attribute prediction function should reflect their geometrical distance to the current child node. For example, WPN= 9, WUF= 3, WUE= 1. Figure 3 shows an example architecture of a device 30 which may be configured to implement a method for encoding or decoding a sequence of point clouds according to the present principles. An encoder may implement the method described in relation to Figure 1 and a decoder may implement the method described in relation to Figure 2. Alternatively, each circuit of the encoder and / or the decoder may be a device according to the architecture of Figure 3, linked together, for instance, via their bus 31 and / or via I / O interface 36. Device 30 comprises following elements that are linked together by a data and address bus 31 :

[0047] - a microprocessor 32 (or CPU), which is, for example, a DSP (or Digital Signal Processor);

[0048] - a ROM (or Read Only Memory) 33;

[0049] - a RAM (or Random Access Memory) 34;

[0050] - a storage interface 35;

[0051] - an I / O interface 36 for reception of data to transmit, from an application; and

[0052] - a power supply, e.g. a battery.

[0053] In accordance with an example, the power supply is external to the device. In each of mentioned memory, the word « register » used in the specification may correspond to area of small capacity (some bits) or to very large area (e.g. a whole program or large amount of received or decoded data). The ROM 33 comprises at least a program and parameters. The ROM 33 may store algorithms and instructions to perform techniques in accordance with present principles. When switched on, the CPU 32 uploads the program in the RAM and executes the corresponding instructions.

[0054] The RAM 34 comprises, in a register, the program executed by the CPU 32 and uploaded after switch-on of the device 30, input data in a register, intermediate data in different states of the method in a register, and other variables used for the execution of the method in a register.

[0055] The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a computer program product, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0056] In accordance with examples, the device 30 belongs to a set comprising:

[0057] - a mobile device;

[0058] - a communication device;

[0059] - a game device;

[0060] - a tablet (or tablet computer);

[0061] - a laptop;

[0062] - a still picture camera;

[0063] - a video camera;

[0064] - an encoding chip;

[0065] - a server (e.g. a broadcast server, a video-on-demand server or a web server).

[0066] Figure 4 shows an example of an embodiment of the syntax of a stream when the data are transmitted over a packet-based transmission protocol. Figure 4 shows an example structure 4 of a stream encoding a sequence of point clouds according to the present principle. The structure consists in a container which organizes the stream in independent elements of syntax. The structure may comprise a header part 41 which is a set of data common to every syntax element of the stream. For example, the header part comprises some of metadata about syntax elements, describing the nature and the role of each of them. The structure comprises a pay load comprising an element of syntax 42 and at least one element of syntax 43 (there may be an element of syntax 43 for each type of attribute data, for instance one for the color, one for the reflectance, one for the normal vectors, etc.). Syntax element 42 comprises data representative of the geometry of the point cloud, that is a series of bits representative of the octree. Element of syntax 43 is a part of the payload of the data stream and may comprise data encoding the attribute values as represented in the point cloud or as residual data (called residue) for a prediction step. The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a computer program product, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, Smartphones, tablets, computers, mobile phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.

[0067] Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications associated with data encoding, data decoding, view generation, texture processing, and other processing of images and related texture information and / or depth information. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.

[0068] Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and / or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor-readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.

[0069] As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.

[0070] A number of implementations have been described. Nevertheless, it will 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. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same function(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.

Claims

CLAIMS1. A method for encoding a point cloud, the method comprising:- obtaining a sequence of point clouds with attributes;- compensating of already decoded point cloud and encoding movement vectors in a data stream;- compressing a geometry of a current point cloud according to said movement vectors;- transferring attributes of a current point cloud onto the geometry of the decompressed point cloud;- decomposing the point cloud in an octree;- for each level of the octree, from a root to leaves:• selecting a prediction of the attributes of a current node of the octree and obtaining residue values for each child node of the current node;• modifying the motion compensation according to the attributes of each child node decoded according to the prediction mode and the residue values; and- entropy encoding selected predictions and residue values for each node of the octree in the data stream.

2. The method of claim 1, wherein the prediction is an inter-frame prediction determined according to a previously decoded point cloud of the sequence.

3. The method of claim 1 or 2, wherein the prediction is a weighted average between an intraprediction and an inter-prediction.

4. A device for encoding a point cloud, the device comprising a processor configured for:- obtaining a sequence of point clouds with attributes;- compensating of already decoded point cloud and encoding movement vectors in a data stream;- compressing a geometry of a current point cloud according to said movement vectors;- transferring attributes of attributes of a current point cloud onto the geometry of the decompressed point cloud;- decomposing the point cloud in an octree;- for each level of the octree, from a root to leaves:• selecting a prediction of the atributes of a current node of the octree and obtaining residue values for each child node of the current node;• modifying the motion compensation according to the atributes of each child node decoded according to the prediction mode and the residue values; and- entropy encoding selected predictions and residue values for each node of the octree in the data stream.

5. The device of claim 4, wherein the prediction is an inter-frame prediction determined according to a previously decoded point cloud of the sequence.

6. The device of claim 4 or 5, wherein the prediction is a weighted average between an intraprediction and an inter-prediction.

7. A method for decoding a point cloud of a sequence of point clouds, the method comprising:- obtaining movement vectors for a geometry of the point cloud from a data stream;- decompressing the geometry of the point cloud according to already decompressed point clouds of the sequence compensated with the movement vectors;- decomposing the point cloud in an octree;- for each level of the octree, from a root to leaves:• applying a prediction obtained from the data stream to the atributes to the child nodes of a current node of the octree and adding residue values obtained from the data stream to each child node;• modifying the motion compensation according to the atributes of each child node decoded according to the prediction mode and the residue values; and- rendering the modified point cloud.

8. The method of claim 7, wherein the rendered point cloud is displayed according to a point of view.

9. A device for decoding a point cloud of a sequence of point clouds, the device comprising a processor configured for:- obtaining movement vectors for a geometry of the point cloud from a data stream;- decompressing the geometry of the point cloud according to already decompressed point clouds of the sequence compensated with the movement vectors;- decomposing the point cloud in an octree;- for each level of the octree, from a root to leaves:• applying a prediction obtained from the data stream to the attributes to the child nodes of a current node of the octree and adding residue values obtained from the data stream to each child node; • modifying the motion compensation according to the attributes of each child node decoded according to the prediction mode and the residue values; and- rendering the modified point cloud.

10. The device of claim 9, wherein the processor is further configured for displaying the rendered point cloud according to a point of view.

Citation Information

Patent Citations

  • Update of look up table: FIFO, constrained FIFO

    US20200404285A1

  • Template update for motion vector refinement

    WO2019072373A1