Method and device for improved mesh coding in VDMC

The method improves the MPEG VDMC project by using a common predictor and adaptive encoding modes for motion vectors, addressing the inefficiencies in 3D dynamic mesh compression and enabling better rate-distortion performance and sub-mesh decomposition.

GB2637209APending Publication Date: 2025-07-16CANON KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
GB2024009837
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-11
Filing Date
2024-07-05
Publication Date
2025-07-16

AI Technical Summary

Technical Problem

The existing MPEG VDMC project does not provide the most-effective compression and encoding of 3D dynamic meshes, particularly in terms of rate-distortion criteria, and lacks efficient methods for decomposing initial meshes into independent sub-meshes.

Method used

The proposed method focuses on improving the base mesh encoder and decoder by using a common predictor for motion vectors, encoding a flag to indicate its nullity, and employing various encoding modes such as skip and inter modes, along with iterative subdivision of motion groups to optimize compression.

Benefits of technology

This approach enhances the compression efficiency of 3D dynamic meshes by minimizing the rate of encoded data while maintaining low distortion, allowing for better adaptation and compression of motion vectors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000001_0000
    Figure 00000001_0000
  • Figure 00000002_0000
    Figure 00000002_0000
  • Figure 00000003_0000
    Figure 00000003_0000
Patent Text Reader

Abstract

A method for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames comprises encoding a current mesh frame, determining a common predictor for encodin
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION The present disclosure concerns a method and a device for compression, decompression, encoding and decoding 3D (three dimensional) meshes. It concerns more particularly 3D dynamic meshes. A 3D dynamic mesh is a temporal sequence of 3D point clouds wherein points (called “vertices” or “vertex”) of a given frame are connected between them (“connectivity”). Each 3D mesh comprises a variable number of 3D vertices with variable 3D positions and variable connectivity. BACKGROUND OF INVENTION This invention is related to an improved of the ongoing MPEG project called VDMC (standing for “Video-based Dynamic Mesh Compression”) or ISO 23090-29:2023(E). The associated reference software and algorithm is roughly described in relation with the figure 1. For the encoding part of the method, 100 is the initial mesh. This initial mesh 100 is simplified for generating the base mesh 101. Each frame of this base mesh 101 is encoded by a base mesh encoder 105, by means of either an INTRA coding algorithm, an INTER coding algorithm or a SKIP coding algorithm, wherein: In the INTRA mode, the current frame of the base mesh is encoded independently of the previous encoded base mesh frames, - In the INTER mode, the current frame of the base mesh is encoded in relation with a previous encoded base mesh frame. In such a case, motion vectors are calculated and encoded. These motion vectors represent the motion (or changes in positions) between corresponding vertices of the current base mesh and the reference base mesh, and - in the SKIP mode, the current base mesh frame is encoded as the exact reference base mesh frame (all the motion vectors are encoded as null vectors). In other words, the SKIP mode consists in providing data indicating that the entire base mesh is at the same position as the previous encoded base mesh”. Next the base mesh is divided into sub-divided meshes 102 for generating a higher resolution mesh. For each vertex of this new mesh, a displacement vector 103 is calculated. This 3D displacement vector 103 moves this vertex of the sub-divided mesh 102 toward new 3D positions closer to the initial mesh 100. Several sub-division steps can be applied (two sub-divisions are illustrated in figure 1). The displacement vectors 103 are then encoded by a displacement vectors encoder 106. In addition, a texture 104 corresponding to the surface of the initial mesh 100 is encoded by a texture encoder 107. The last encoding stage is the generation of an Atlas bitstream 108 which is a stream of data containing metadata used by a decoder to generate a 3D decoded mesh 117. For the decoding part, the following operations are performed: - The base mesh 112 is decoded by a base mesh decoder 109, - A number of sub-division operations 113 equal to the number of subdivision operations 102 are performed, - Displacement vectors 114 are decoded by a displacement vectors decoder 110. - The texture 115 is decoded by a texture decoder 111. Thanks to the Atlas information coming from the Atlas encoder 108, an Atlas decoder 116 generates the 3D decoded mesh 117 based on the decoded base mesh 112, the sub-divided mesh 113 and the decoded texture 115. The Atlas bitstream may also contain metadata to conduct post-processing on the decoded database mesh 112, displacement vectors 114 and texture 115. However, the VDMC project does not provide the most-effective compression and encoding of meshes, particularly in view of a rate-distortion criterion. VDMC also provides the ability to decompose the initial mesh into independent sub-meshes. A sub-mesh is a sub-part of the initial mesh. Each sub-mesh can be encoded independently of the other sub-meshes. When only one single sub-mesh is defined, then the sub-mesh corresponds to the initial mesh. In the following of this description, a frame could be understood as a frame of a sub-mesh (the sub-mesh being either the initial mesh if only one sub-mesh is defined or one part of the initial mesh if several sub-meshes have been defined). SUMMARY OF THE INVENTION The present invention has been devised to address one or more of the foregoing concerns. It particularly focuses on improvements of the base mesh encoder 105 and of the base mesh decoder 109. According to a first aspect of the invention, there is provided a method for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising, for encoding a current mesh frame: determining a common predictor for encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, - encoding a flag value indicating whether the common predictor is null or not, and - encoding the common predictor if the common predictor is not null. In embodiments, the method further comprises: selecting, according to a first predetermined decision criterion, an encoding mode for encoding motion vectors representing changes in positions of points of the mesh between the current mesh frame and the reference mesh frame, wherein the encoding mode is selected among a set of encoding modes comprising a skip mode and an inter mode, and encoding at least one flag value indicating whether the skip mode or the inter mode is selected. In embodiments, if the skip mode is select, the common predictor encodes the plurality of motion vectors associated with all the points of the current mesh frame. In embodiments, if the inter mode is selected, a plurality of motion groups of the motion vectors of the current frame mesh are constituted, and for each motion group a decision is made, according to a third predetermined decision criterion, of an encoding mode for said motion group, wherein the encoding mode is selected among a group skip mode and a group inter mode. In embodiments, if the group skip mode is selected for a group of motion vectors, the steps of determining a common predictor, encoding a flag and encoding the common predictor are applied for the plurality of motion vectors of the group. In embodiments, if the group inter mode is selected for a group of motion vectors, a plurality of motion components groups corresponding to the motion vectors of the group are constituted, each motion component group being encoded separately. In embodiments, the method further comprises: - selecting, according to a second predetermined decision criterion, an encoding mode for encoding motion components groups, wherein the encoding mode is selected among a set of encoding modes comprising a group component skip mode and a group component inter mode, and encoding at least one flag value indicating whether the group component skip mode or the group component inter mode is selected. In embodiments, if the group component inter mode is selected for a motion components group, each motion vector component of the motion components group is encoded using a corresponding predictor and a residual. In embodiments, if the group component skip mode is selected for a motion components group, a skip value flag is encoded, said skip value flag indicating whether a common component predictor (default component) is null or not. In embodiments, if the group component skip mode is selected for a motion components group, a prediction flag is encoded, said flag indicating whether a common component predictor (default component) is encoded using a predictor or not. In embodiments, if the group inter mode is selected for a group of motion vectors, each motion vector of the group is encoded using a corresponding predictor and a residual. In embodiments, motion groups including the same number of motion vectors are constituted, the method further comprising, iteratively in at least one iteration: - a step of deciding, according to a fourth predetermined criterion, a sub-division of the motion group, - if a sub-division is decided, a step of sub-dividing the motion group into sub-motion groups having fewer motion vectors than said motion group, and - for each sub-motion group, in a decision step, a decision is made according to a fifth predetermined decision criterion, of an encoding mode for said sub-motion group, wherein the encoding mode is selected among the group skip mode and the group inter mode. In embodiments, the fourth predetermined criterion of the step of deciding a subdivision of the motion group uses a rate-distortion criterion. In embodiments, the step of deciding a sub-division of the motion group comprises determining which partition of the motion group is the less costly to encode. In embodiments, the number of iterations is determined according to a sixth predetermined criterion. In embodiments, the first predetermined decision criterion is a distortion criterion minimizing the sum of a rate of compression of encoded data and a weighting of a distortion associated with the encoding modes. According to a second aspect of the invention, there is provided a method for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising, for decoding a current mesh frame: decoding a flag value indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and - decoding the common predictor if the common predictor is not null. In embodiments, the method further comprises: decoding at least one flag value indicating whether a skip mode or an inter mode has been selected for encoding motion vectors representing changes in positions of points of the mesh between the current mesh frame and the reference mesh frame, and - decoding the motion vectors according to a decoding mode corresponding to the selected encoding mode. In embodiments, the method further comprises, if the group inter mode is selected for a group of motion vectors, decoding a plurality of motion components groups corresponding to the motion vectors of the group. In embodiments, the decoding of the plurality of motion components groups is performed according an encoding mode indicated by at least one flag value indicating whether a group component skip mode or a group component inter mode is used. In embodiments, if the group component inter mode has been selected for a motion components group, each motion vector of the motion components group is decoded using a corresponding predictor and a residual. In embodiments, if the group component skip mode has been selected for a motion components group, a skip value flag is decoded, said skip value flag indicating whether a common component predictor (default component) is null or not. In embodiments, if the group component skip mode has been selected for a motion components group, a prediction flag is decoded, said flag indicating whether a common component predictor (default component) is encoded using a predictor or not. In embodiments, the method further comprises, if the skip mode is indicated, decoding the common predictor as the only one motion vector associated with all the points of the current mesh frame. In embodiments, the method further comprises, if the inter mode is indicated, for each motion group of a plurality of motion groups of the motion vectors of the current frame mesh, decoding whether an encoding mode used for encoding said motion group is a group skip mode and a group inter mode based on at least one flag. In embodiments, the method further comprises, if the group skip mode has been used for encoding a group of motion vectors, decoding a common predictor, decoding the flag indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and applying the common predictor to the plurality of motion vectors of the group. In embodiments, if the group inter mode is has been used for encoding a group of motion vectors, each motion vector of the group is decoded using a corresponding predictor and a residual. In embodiments, the method further comprises constituting motion groups including the same number of motion vectors, and, iteratively in at least one iteration: - decoding a sub-division of the motion group, - if a sub-division is decoded, a step of sub-dividing the motion group into submotion groups having fewer motion vectors than said motion group, and for each sub-motion group, decoding an encoding mode used for encoding said sub-motion group, wherein the encoding mode is the group skip mode or the group inter mode. According to a third aspect of the invention, there is provided a device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for encoding a current mesh frame by: determining a common predictor for encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, - encoding a flag value indicating whether the common predictor is null or not, and encoding the common predictor if the common predictor is not null. According to a fourth aspect of the invention, there is provided a device for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for decoding a current mesh frame by: - decoding a flag value indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and - decoding the common predictor if the common predictor is not null. According to a fifth aspect of the invention, there is provided a method for encoding a mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising: - a step of encoding a first frame of said mesh, - a step of selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded; said method being characterized in that, if the inter mode is selected, the method further comprises: - a step of associating calculation methods of prediction vectors according to prediction indexes using a truncated unary code - a step of encoding the association between predictor indexes and calculation methods of the motion vectors. In embodiments, the method further includes a step of calculating statistics about prediction indexes corresponding to predictors already used for encoding a previous frame of said mesh frame, and a step of assigning a shorter unary code to the statistically most used prediction index. In embodiments, the step of encoding the association includes a step of encoding an order of predictor indexes associated with calculation methods. According to a sixth aspect of the invention, there is provided a method for decoding a mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising: - a step of decoding a first frame of said mesh, - a step of decoding an encoding mode used for encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode has been selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded; - a step of decoding an association between predictor indexes and calculation methods of the motion vectors. In embodiments, the step of decoding the association includes a step of decoding an order of predictor indexes associated with calculation methods. According to a seventh aspect of the invention, there is provided a device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for: - encoding a first frame of said mesh, - selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded; said method being characterized in that, if the inter mode is selected, the method further comprises: - associating calculation methods of prediction vectors according to prediction indexes using a truncated unary code - encoding the association between predictor indexes and calculation methods of the motion vectors. According to an eighth aspect of the invention, there is provided a device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for: - decoding a first frame of said mesh, - decoding an encoding mode used for encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode has been selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded; - decoding an association between predictor indexes and calculation methods of the motion vectors. According to a ninth aspect of the invention, there is provided a method for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising: - a step of encoding a first frame of said mesh, and - a step of encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors; and, if two calculated predictors are equal: - a step of determining if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors. In embodiments, the method further comprises: - a step of selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein motion vectors of at least two motion vectors of the first mesh frame are encoded; and - if the inter mode is selected, the predetermined number of predictors corresponding to a motion vector to be encoded are calculated. In embodiments, a first predictor is calculated as the average non-biased vector of the already encoded motion vectors of a predetermined number of points neighboring the point of the first mesh frame to which the motion vector to be encoded applies, and a second predictor is calculated as the average vector of the already encoded motion vectors of the predetermined number of points neighboring the point, of the first mesh frame to which the motion vector to be encoded applies, and if the first predictor and the second predictor are equal, it is determined if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors. In embodiments, the additional vector is an average motion vector of a previous encoded group having a predetermined number of vectors. In embodiments, if the additional vector may be calculated as a predetermined function of previously encoded motion vectors, then the predictor corresponding to the second predictor is replaced by this additional predictor. According to a tenth aspect of the invention, there is provided a method for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising: - a step of decoding a first frame of said mesh, and - a step of decoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors, the method further comprising, if at least one decoded flag value indicates that two calculated predictors are equal and that an additional vector calculated as a predetermined function of previously encoded motion vectors and different from the null vector has been encoded: - a step of decoding the additional vector. According to an eleventh aspect of the invention, there is provided a device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for: - encoding a first frame of said mesh, and - encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors; and, if two calculated predictors are equal: - determining if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors. According to a twelfth aspect of the invention, there is provided a device for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for: - decoding a first frame of said mesh, and - decoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors, the method further comprising, if at least one decoded flag value indicates that two calculated predictors are equal and that an additional vector calculated as a predetermined function of previously encoded motion vectors and different from the null vector has been encoded, decoding the additional vector. According to a thirteenth aspect of the invention, there is provided a computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method as set forth above, when loaded into and executed by the programmable apparatus. According to a fourteenth aspect of the invention, there is provided a computer-readable storage medium storing instructions of a computer program for implementing a method as set forth above. According to a fifteenth aspect of the invention, there is provided a computer program which upon execution causes the method as set forth above. BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which: Figure 1 is a block-diagram of an encoder and a decoder using VDMC, Figure 2 is a block-diagram illustrating an example of encoding process for the encoder and decoder shown in Figure 1, Figure 3 illustrates an example of two successive frames of a base mesh, Figure 4 illustrates an example of encoded base meshes when the Skip mode is used; Figure 5 is a block-diagram illustrating a prior art decision as to an encoding mode between the INTRA mode, the INTER mode and the SKIP mode for coding a frame of the base mesh, Figure 6 is a block diagram illustrating a new method of deciding the encoding mode used in a new encoder, Figure 7 is a block-diagram illustrating a new decoder corresponding to the new encoder described in relation with figure 6, Figure 8 illustrates the prior art INTER mesh encoding mode as implemented in VDMC, Figure 9 illustrates a new mesh encoding mode used in a new encoder, Figure 10 illustrates steps of a first new encoding method using the new mesh encoding mode shown in Figure 9, Figure 10a illustrates steps of an alternative encoding method to figure 10 using the new mesh encoding mode shown in Figure 9, Figure 10b illustrates steps of an alternative new encoding method to figure 10 using the new mesh encoding mode shown in Figure 9, Figure 10c illustrates steps of an alternative new encoding method to figure 10 using the new mesh encoding mode shown in Figure 9, Figure 10d illustrates steps of an alternative new encoding method to figure 10, Figure 10e illustrates steps of an alternative new encoding method to figure 10, Figure 10f illustrates steps of an alternative new encoding method to figure 10, Figure 10fa gives an overview of the method of Figure 10f, Figure 10g illustrates steps of an alternative new encoding method to figure 10, Figure 10ga gives an overview of the method of Figure 10g, Figure 11 illustrates steps of a first new decoding method using data encoded using the new encoding method shown in Figure 10, Figure 11a illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10a, Figure 11b illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10b, Figure 11c illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10d, Figure 11d illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10e, Figure 11e illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10f, Figure 11f illustrates steps of an alternative decoding method using data encoded using the encoding method shown in Figure 10g, Figure 12 illustrates steps of a second new encoding method using the new mesh encoding mode shown in Figure 9, Figure 13 illustrates steps of a second new decoding method using data encoded using the new encoding method shown in Figure 12, Figure 14 illustrates steps of a first new encoding method using new predictor data, Figure 15 illustrates steps of a second new encoding method using new predictor data, Figure 16 illustrates steps of a third new encoding method using new predictor data, Figure 17 illustrates steps of a new decoding method using new predictor data, Figure 18 illustrates steps of another embodiment of the new decoding method shown in Figure 17, Figure 19 illustrates subdivisions of groups of points of a base mesh in a new decoding method, Figure 20 illustrates steps of a second encoding method using skip mode and inter mode, and Figure 21 illustrates a device according to the present invention. DETAILED DESCRIPTION OF THE INVENTION Figure 1 has already been described in the discussion of the background art. Figure 2 illustrates an example of an encoding process for the encoder and decoder. A dynamic base mesh 200 is encoded by a base mesh encoder 201. This base mesh is dynamic since the position of the points may change in time. Three different compression modes are possible for encoding this dynamic base mesh: - The INTRA mode: the current frame of the base mesh is encoded independently of the previous encoded base mesh frames, - The INTER mode: the current frame of the base mesh is encoded in relation with a previous encoded and decoded base mesh frame. In such a case, motion vectors are calculated (see Figure 3) and encoded. These motion vectors represent the motion between corresponding vertices of the current base mesh frame and the reference base mesh frame, and - The SKIP mode: The current base mesh frame is encoded as the exact reference base mesh frame (all the motion vectors are encoded as null vectors). A decoder 202 uses decompression modes corresponding to the compression modes used by the encoder 201 to provide decoded frame mesh 203. Figure 3 illustrates an example of two successive frames 300 and 302 of a base mesh. The frame 300 is a 3D triangulation corresponding to the base mesh at the time ‘t’. The frame 302 is a 3D triangulation corresponding to the base mesh at the time ‘t+1 ’. The ‘motion’ (the correspondence between vertices associated to the motion vectors is displayed) between the two base mesh frames is illustrated by the arrows 301. Figure 4 illustrates an example of an encoded base mesh when the Skip mode is used. 400 is the reference base mesh frame (i.e., the base mesh frame at time‘t’). 404 is the current base mesh frame (i.e., the base mesh frame at time ‘t+1’). If the skip mode is chosen, then all the “motion vectors” 403 are encoded as null motion vectors and the decoded current base mesh frame 402 will be identical to the reference base mesh frame 400. As seen in Figure 4, the decoded current base mesh frame may be quite different from the actual current base mesh frame 404. Figure 5 illustrates the principle of the choice between the INTRA / INTER / SKIP modes for coding the current frame 500 of the base mesh. In this figure 5, we focus only on the choice between INTER and SKIP. In 501, a choice is made based on a criterion, such as, for example, a rate-distortion criterion. The choice for INTRA mode is not changed in comparison to the prior art, and thus not described here. Provided that the INTRA mode is not chosen, in 503, the encoder has to choose between INTER and SKIP modes. A rate-distortion criterion is used in 504 for deciding between INTER and SKIP modes. As alternative in the choice between INTER and SKIP, and as shown in Figure 5, in the rate distortion criterion, the rate of the INTER mode is estimated and compared to lambda times (i.e., a weighting of) the distortion of the motion vectors encoding if the SKIP mode is chosen. The mode corresponding to the minimum of said two values is selected. After this comparison, the SKIP or INTER mode is chosen and a flag is encoded in the bitstream 505 (for the skip flag indicating that the skip mode has been chosen) or 506 (for the inter flag indicating that the inter mode has been chosen) for notifying the decoder 507 which of the two modes is used. The Skip flag 505 means that the encoded flag is T. The Inter Flag 506 means that the encoded flag is ‘O’. This is illustrated in 507 wherein the Flag is decoded. If this flag is T, then the frame of the base mesh will be decoded as a skip frame. If this flag is ‘O’, then the frame of the base mesh will be decoded as a Inter frame. An improvement over this algorithm is now proposed. Figure 6 illustrates this proposed improvement in relation with Figure 5. Data 600 and functional blocks 601 to 605 are similar to data 500 and functional blocks 501 to 505. Differences are described hereafter. If, the skip flag 605 is encoded (skip mode chosen), a global motion vector 608 is calculated by the functional block 607. This global motion vector 608 is, for example, the average motion between the reference base mesh frame and the current base mesh frame. For example, this global motion vector 608 is the average of the motion vectors from the reference mesh frame to the current mesh frame. In 609, a test is performed to determine if this global motion vector 608 equals the null vector. If yes, a flag ‘FlagGlobal’ is encoded with the value ‘true’. If no, the flag ‘FlagGlobal’ is encoded with the value ‘false’. In this last case, the global vector 608 is encoded in the bitstream. Figure 20 illustrates, as a flowchart, an exemplary implementation of the improvement illustrated in Figure 6. In step 2000, a new frame to be encoded is available. It is supposed that this new frame is not encoded as INTRA frame. Based on a ratedistortion criterion 2001, it is decided if the frame is encoded as a skip frame or as an Inter frame. A flag 605 or 606 is generated in step 2002 (this flag will be decoded by the decoder to know the status of the frame). If the flag 605 is ‘true’, then the current frame is encoded as a Skip frame, in step 2005. A global motion vector 608 is calculated in step 2006. For example, this global motion vector 608 is the average motion vector of all the motion vectors of the frame. If this global motion vector 608 is not the null vector, as checked in step 2007, a flag FlagGlobal ‘false’ is generated in step 2008 and encoded in step 2009. Then, the global motion vector 608 is encoded in step 2010. If the flag FlagGlobal is ‘true’ as shown in step 2011, the flag is encoded in step 2012 but no global motion vector is encoded. If the flag 605 is ‘false’ (meaning the flag 606 is ‘true’) in step 2003, the mesh is encoded using the inter mode in step 2004, as described with regards to Figure 11 or Figure 13. After one of steps 2004, 2010 or 2012, a next frame 2000 is selected in step 2013 and the method returns to step 2001. For the decoding method corresponding to the encoding method described with regards to this Figure 20, if the frame to be decoded is a Skip frame, first FlagGlobal is decoded (to test if a global motion vector as to be decoded). If FlagGlobal is ‘false’, then the global motion vector 608 is decoded and all the motion vectors of the frame are set to the global motion vector 608, instead of being set to the null vector if FlagGlobal is ‘true’. Figure 7 illustrates the principle of a decoder for decoding data encoded according to the encoding method described with regards to figure 6. The decoder decodes the flag skip flag 700 or the inter flag 701, that indicates if the skip or Inter mode has been used by the encoder. If the skip mode is chosen, the FlagGlobal is decoded in 702. If the FlagGlobal is ‘true’, then the decoding is run in step 704: the decoder generates the current decoded mesh frame of the base mesh directly from the decoded reference mesh frame (the positions of the vertices of the current frame equal the position of the vertices of the reference frame). If the FlagGlobal is ‘false’, then the global motion vector 608 is decoded in step 703 and all the vertices of the reference frame are translated according to the decoded global vector to provide the current decoded mesh frame in step 704. If the skip flag is false, then the current frame is decoded as an Inter frame 705. Figure 8 illustrates the principle of the INTER base mesh frame coding as implemented in the current version of VDMC. The motion vectors associated to the current frame are split into groups of N vectors. Each one of these groups of N vectors is called a “motion group”. In this figure 8, we suppose that N = 4 and two groups 800 and 801 are illustrated. The motion vectors (each representing a motion, or change in position, between a vertex of the reference base mesh frame and the corresponding vertex in the current base mesh frame) of each group 800 and 801 are calculated. They can be encoded either in a lossless way, or “group-inter” mode, or in a lossy way as “group-skip” vectors (the N vectors of the group are encoded as null motion vectors). For example, group 800 is encoded in a lossless way, or group-inter mode, whereas group 801 is encoded with a lossy mode or “group-skip” mode. The choice between lossless and lossy ways is based on a rate distortion criterion. If the group-skip mode is chosen, the encoder encodes a group-skip flag as ‘true’. If the group-inter mode is chosen, the group-skip flag is set as ‘false’. In the current version of VDMC, the size of the motion group is fixed. In the present specification, an improvement of the coding process is described. This improvement enables different motion group sizes enabling a better adaptation of the motion group and a better compression of the motion vectors. Figure 9 illustrates the purpose of this improvement. In this example, the first group 900 has a size N=4 whereas two sub-groups 901 and 902 have a size N=2. More details are given below. Figure 10 is an illustration of a method of encoding motion groups according to the current version of VDMC. This figure illustrates the coding of a frame of the base mesh when the INTER mode is used. An initial set of motion vectors have to be encoded in 1000. If step 1001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 1002. This N vectors form a motion group. In step 1003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by zero vectors at the decoder) or will be encoded in a lossless way. In the first case, in step 1004, a group-skip flag is set at ‘true’ for being encoded. In the second case, the group-skip flag is set at ‘false’, in step 1005 for being encoded. Still in the second case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 1006. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 1006. In step 1007, the chosen predictor index is encoded. In step 1008, for each motion vector MV(i) of the motion group, a predictor (a motion vector) is calculated based on the selected predictor index and a residual Res(i) (difference between the motion vector MV(i) and its predictor prediction(i)) is calculated to be encoded. That is Res(i)= MV(i) - prediction (i = 1 to N). After one of steps 1004 and 1008, the process returns to step 1001. In short, VDMC proposes to encode the base mesh by using either INTRA, INTER or SKIP modes. In a source code of a reference software according to Figure 10, for the INTER mode, motion vectors are split into motion groups and the motion vectors of a given motion group are encoded either in a ‘total’ skip way (all motion vectors of a motion group are decoded as zero vectors) or in a prediction way (motion vectors of a motion group are predicted according to a given prediction index, the residuals of the motion vectors are encoded in a lossless way). Figure 10a is an illustration of a method of encoding motion groups according to the current version of VDMC. This version is slightly different from the one proposed in Figure 10. This figure illustrates the coding of a frame of the base mesh when the INTER mode is used. An initial set of motion vectors have to be encoded in 5000. If step 5001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 5002. These N vectors form a motion group. In step 5003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by zero vectors at the decoder) or will be encoded per group of components. In the first case, in step 5004, a group-skip flag is set at ‘true’ for being encoded. In the second case, in step 5030, the group-skip flag is set at ‘false’. Still in the second case, a group of components of the N vectors is selected. For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. In other words, the N scalar values corresponding to component 0, 1 and 2 will be separately encoded. For this group of N scalar values, a rate distortion criterion is calculated in 5006 for deciding if the N scalar values will be encoded as a skip mode or will be encoded in a lossless way based on a predictive approach. If the skip mode is selected, in 5007, a flag is encoded for indicating to the decoder that the N components will be decoded as zero. If the predictive mode is selected, a flag in 5008 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 5009. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 5009. In step 5010, the chosen predictor index is encoded. In step 5011, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, if components have not all been processed, the process returns in 5005 with a new component. If all components have been processed, the process returns to step 5001. In short, in a source code of a reference software according to Figure 10a, the notion of component group is added in the INTER base mesh coding. If the motion vectors of a motion group are not encoded in a ‘total’ skip way, the motion vectors of a motion group are encoded component per component: either from a predictive way (prediction and residual encoding in a lossless manner) or from a skip way (component of a motion group skipped / decoded as zero value). Figure 10b is an illustration of an inventive method of encoding motion groups in relation to the current version of VDMC. This version is different from the one proposed in Figure 10a by integrating inventive process. This figure illustrates the coding of a frame of the base mesh when the INTER mode is used. An initial set of motion vectors have to be encoded in 3000. If step 3001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 3002. These N vectors form a motion group. In step 3003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by zero vectors at the decoder) or will be encoded per group of components. In the first case, in step 3004, a group-skip flag is set at ‘true’ for being encoded. In the second case, the group-skip flag is set at ‘false’ in step 3035. Still in the second case, a group of components of the N vectors is selected. For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. For this group of N scalar values, a rate distortion criterion is calculated in 3006 for deciding if the N scalar values will be encoded as a skip mode or will be encoded in a lossless way based on a predictive approach. In this step 3006, a new (second) skip mode is proposed (new in reference to the Figure 10a). With this second skip mode, the group of N scalar values (corresponding to one component of the N vectors) will be encoded (and decoded) by a non-zero skip value. It is different from the first skip mode wherein the encoded / decoded value is implicitly zero. In 3007, a flag is encoded for notifying the decoder that a skip mode is chosen (if this mode has been chosen by the rate-distortion criterion in 3006). Next, in 3008, a new flag (“isComponentZeroSkipUsed") is encoded to distinguish between first and second skip modes. This skip flag (false / true) is a way to specify which skip mode is chosen (default value is zero or non-zero). In 3009, if the default value is non-zero (isComponentZeroSkipUsed is false), the default component value is encoded for being used as default value by the decoder. The next step is 3014. If components have not all been processed, the process returns in 3005 with a new component. If all components have been processed, the process returns to step 3001. If the predictive mode is selected in 3006, a flag in 3010 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 3011. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 3011. In step 3012, the chosen predictor index is encoded. In step 3013, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, in 3014, if components have not all been processed, the process returns in 3005 with a new component. If all components have been processed, the process returns to step 3001. In this current figure, we propose to encode a second component skip flag in 3008 notifying if the group component will be decoded as a zero or non-zero value (the nonzero value being encoded in 3009). An alternative method consists in systematically encoding the skip flag 3007 (“Group-component-skip mode”) for the skip-group component, to remove the encoding of the flag 3008 (“isComponentZeroSkipUsed") and in systematically encoding the default value for the skip component (this default value could then take a zero or non-zero value). In such a case, the new skip flag (“isComponentZeroSkipUsed") is not mandatory. However, as alternative, it is also possible to systematically encode the default value (if not zero) in 3009 from a predictive way. In such a case, the usage of the second skip flag in 3008 is better. As example of predictive coding of the default value, for a given component index k of a group of N components, the scalar value can be encoded as the difference between a given predictor and the current scalar value. For example, if the previous component group has been encoded in a skip way, the predictor can be the encoded scalar value of the previously component group (with same component index). If the previous component group has been encoded from a prediction way, the prediction value can be calculated as a function of the motion vectors of the previous group. For example, the function can be the average of the N vectors / components of the previous group. As alternative, an additional flag (prediction flag) is encoded notifying if prediction is used or not for encoding the default scalar value in 3009. The predictive mode is no more systematically selected. In other words, the default scalar value in 3009 can be encoded either from a predictive or non-predictive way (the selection between these 2 modes being based on a rate-distortion criterion). In this alternative, an additional ‘prediction flag’ is encoded for notifying the decoder to decode the default value from a predictive or non-predictive way. An alternative to the scheme of the Figure 10b is described in the Figure 10c. In this alternative, the default value of the component skip mode is used as a predictor value of the N scalar values of the current motion group (as in Figure 10b). In such a case, the residual could be also encoded in 3015 as when the prediction mode is chosen in 3006. However, the encoding can be lossy as opposite to the encoding in the module 3006. A rate-distortion criterion can be used to find the optimal rate-distortion point and determine the quantization parameters of the residual. In other words, the module 3015 calculates first the residuals of the component of the motion vectors. Next these residual values can be encoded in a lossy way. A particular case of this lossy compression is the encoding of a zero value for each residual value. In short, the disclosure proposes according to embodiments a non-zero skip mode at the component-level (for matching the new component approach implemented in relation with Figure 10b). The non-zero skip mode (referred to also as skip mode or component skip mode) is applied for motion vector components (the skip mode at the vector group level is unchanged and remains a zero-skip mode). For a given component and for the current motion group, a default skip motion component (a skip value) is calculated. This default skip motion component can take any value (zero or non-zero). The skip mode based on the calculated skip value (component skip mode) is compared to the prediction mode according to a rate-distortion criterion. If the component skip mode is selected, the skip motion component is encoded. The skip motion component value can be either directly encoded or encoded as the sum of a predictor (calculated from encoded / decoded motion vectors of the previous group) and a residual. A prediction flag is encoded to notify the decoder about the direct or predictive decoding of the skip motion component value. As alternative, the prediction flag can be avoided and the default skip motion component can be encoded systematically in a predictive way. As illustration, the impact of the proposal on the specification text of VDMC (document ISO 23090-29:2024, Working Draft 6.0 of VDMC, MDS23606_WG07_N00811, 2024-03-15 10:09:53) are the following (added parts are italicized, deleted parts are crossed out, the rest being unchanged parts): bm_inter_submesh_data_unit_default (submeshlD, vertexCount) { Descriptor iff vertexCount >0) bmidu_derived_mv_present_flag[ submeshlD ] aefv) iff bmidu_derived_mv_present_flag[ subMeshlD ] ) { bmidu_mv_signalled_flag_count[ subMeshlD ] aefv) forf d = 0; d <bmidu_mv_signalled_flag_count[ subMeshlD ]; d++ ) bmidu_mv_signalled_flag[ subMeshlD ] [ d ] aefv) } groupSize = bmsps_inter_mesh_motion_group_size_minusl + 1 groupCount = f vertexCount -1) / groupSize + 1 vStart = 0 forf g = 0; g <groupCount: g++ ) { bmidu_skip_group_flag[ submeshlD ][ g] aefv) iff !bmidu_skip_group_flag[ submeshlD ][ g ]) { for f k = 0; k <3; k++ ) { if f » f k -- ? && bmidu_skip_group_comp_flag [ subMeshlD ][g][k] aefv) iff !bmidu_skip_group_comp_flag[ subMeshID][g][k]) { bmidu_mv_pred_mode_group[ subMeshlD ][ g ][ k] aefv) } iff bmidu_skip_group_comp_flag[subMeshlD][g][k]) { bmidu_skip_group_comp_predict_flag[ submeshlD ][ g ][k] aefv) bmidu_mv_residual_abs_gtO[ submeshlD ][g ][k] aefv) if (bmidu_mv_residual_abs_gtO[submeshlD][g][k]) { bmidu_mv_residual_sign[ submeshlD ][g][k] aefv) bmidu_mv_residual_abs_gtl[ submeshlD ][g][k] aefv) iffbmidu_mv_residual_abs_gtl[submeshlD][g][k]) { bmidu_mv_residual_abs_rem[ submeshlD ][g][k] aefv) } } } } if (g == fgroupCount - 1)) groupSize = submeshMotionCount- groupSize * fgroupCount -1) forf v = vStart; v <fvStart+groupSize); v++ ) { iff BmiduMvFlagf submeshlD ] [ v ]) { forf k = 0; k <3; k++ ) { iff !bmidu_skip_group_flag[ subMeshlD][ g]) { iff !bmidu skip g^^ subMeshlD ][ g][ k]) { bmidu_mv_residual_abs_gtO[ submeshlD ] [ v ] [ k ] aefv) if (bmldu_mv_residual_abs_gtO[ submeshlD ][ v][ k]] { bmidu_mv_residual_sign[ submeshlD ][ v][ k ] ae(v) bmidu_mv_residual_abs_gtl [ submeshlD ] [ v ] [ k ] ae(v) if (bniidu_mv_residual_abs_gtl[ submeshlD ][ v][ k]] bmidu_mv_residual_abs_rem[ submeshlD ] [ v ] [ k ] ae(v) } } } } } } / / v } vStart += groupSize } } bmidu_skip_group_component_flag[ subMeshlD ][ g ][ k ] equal to 1 specifies decoding of k-th motion vector component, associated with vertices in the group with index g of the current submesh, with submesh ID equal to subMeshlD, is skipped and the value of k-th motion vector component is inferred to be equal to the decoded default skip component group value. bmidu_skip_group_component_flag[ subMeshlD ][ g ][ k ] equal to 0 specifies decoding of k-th motion vector component, associated with vertices in the group with index g of the current submesh, with submesh ID equal to subMeshlD, is not skipped. bmidu_skip_group_comp_predict_flag[ subMeshlD ][ g ][k] equal to 1 specifies decoding of the default skip component group value associated with vertices in the group with index g of the current submesh, with submesh ID equal to subMeshlD, is based on a prediction value calculated symmetrically at the encoder and decoder as described below: For the group of index g, the prediction value is calculated as the average for the component ‘k’ of the motion vectors of the previous group with index ‘g-1 ’ if ‘g’ is strictly higher than 0 and the component ‘k’ of the previous group with index ‘g-1 ’ is encoded in a non-skip way. - For the group of index g, the prediction value is calculated as the decoded skip value of the component ‘k’ of the previous group of index ‘g-1’ if ‘g’ is strictly higher than 0 and the component ‘k’ of the previous group of index ‘g-1’ is encoded in a skip way. If g equals 0, the prediction value is zero. bmidu_skip_group_comp_predict_flag[ subMeshlD ][ g ][k] equal to 0 specifies decoding of the default skip component group value associated with vertices in the group with index g of the current submesh, with submesh ID equal to subMeshlD, is based on a prediction value calculated symmetrically at the encoder and decoder and the prediction value is 0 (it is equivalent to code the skip component value directly). If bmidu_skip_group_component_flag[ subMeshlD ][ g ][ k ] equals 1: bmidu_mv_residual_abs_gtO[ submeshlD ][ g ][ k ]equal to 1 specifies the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to submeshlD has a value higher than 0. bmidu_mv_residual_abs_gtO[ subMeshlD ][ g ][ k] equal to 0 indicates the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to subMeshlD, has a value equal to 0. bmidu_mv_residual_sign[ submeshlD ][ g ][ k ] equal to 1 specifies indicates whether the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to submeshlD has a value greater or equal to 0. bmidu_mv_residual_sign[ submeshlD ][ g ][ k] equal to 0 indicates the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to submeshlD has a value less than 0, When bmidu_mv_residual_sign[ g ][ k ] is not present it shall be inferred to be equal to 1. bmidu_mv_residual_abs_gt1[ submeshlD ][ g ][ k ] indicates whether the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to submeshlD has an absolute value higher than one (when 1), or not (when 0). If bmidu_mv_residual_abs_gt1 [ g ][ k ] is not present it shall be inferred to be equal to 0. bmidu_mv_residual_abs_rem[ submeshlD ][ g ][ k ] indicates the absolute value of the k-th component of the skip motion residual associated with the group with index g of the current submesh, with submesh ID equal to submeshlD. When bmidu_mv_residual_abs_rem[ g ][ k ] is not present it shall be inferred to be equal to 0. The k-th component of the skip motion residual SkipMotionVectorResiduals[ g ][ k ] associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD is computed as follows: SkipMotionVectorResiduals [ g ][ k ] = bmidu mv residual sign[ g ][ k ] ? 1 : -1) * (bmidu mv residual abs gtO[ g ][ k ] + bmidu mv residual abs gtl[ g ][ k ] + bmidu mv residual abs rem[ g ][ k ]) If bmidu_skip_group_component_flag[ subMeshlD ][ g ][ k ] equals 0: bmidu_mv_residual_abs_gtO[ submeshlD ][ v ][ k ]equal to 1 specifies the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD has a value higher than 0. bmidu_mv_residual_abs_gtO[ subMeshlD ][ v ][ k ] equal to 0 indicates the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to subMeshlD, has a value equal to 0. bmidu_mv_residual_sign[ submeshlD ][ v ][ k ] equal to 1 specifies indicates whether the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD has a value greater or equal to 0. bmidu_mv_residual_sign[ submeshlD ][v][k] equal to 0 indicates the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD has a value less than 0, When bmidu_mv_residual_sign[ v ][ k ] is not present it shall be inferred to be equal to 1. bmidu_mv_residual_abs_gt1[ submeshlD ][ v ][ k ] indicates whether the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD has an absolute value higher than one (when 1), or not (when 0). If bmidu_mv_residual_abs_gt1[ v ][ k ] is not present it shall be inferred to be equal to 0. bmidu_mv_residual_abs_rem[ submeshlD ][ v ][ k ] indicates the absolute value of the k-th component of the motion vector prediction residual associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD. When bmidu_mv_residual_abs_rem[ v ][ k ] is not present it shall be inferred to be equal to 0. The k-th component of the motion vector prediction residual VertexMotionVectorResiduals[ v ][ k ] associated with the vertex with index v of the current submesh, with submesh ID equal to submeshlD is computed as follows: VertexMotionVectorResiduals[ v ][ k ] = bmidu mv residual sign[ v ][ k ] ? 1 : -1) * (bmidu mv residual abs gtO[ v ][ k ] + bmidu mv residual abs gtl[ v ][ k ] + bmidu_mv_residual_abs_rem[ v ][ k ]) Figure 10d is an illustration of another inventive method of encoding motion groups in relation to the current version of VDMC. Similar elements with Figure 10b have same references. The figure illustrates the coding of a frame of the base mesh when the INTER mode is used. An initial set of motion vectors have to be encoded in 3000. If step 3001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 3002. These N vectors form a motion group. In step 3003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by the values of a given skip vector at the decoder without coding residual information: lossy mode) or will be encoded per group of components. The given skip vector is calculated in 3020 for the encoder and will be calculated in a symmetrical way by the decoder. As the given skip vector is calculated in a symmetrical way at the decoder, there is no need to encode this given skip vector. The given skip vector may be calculated if the N vectors are skipped. In the first case (group-skip mode chosen), in step 3021, a group-skip flag is set at ‘true’ to be encoded. In the second case (group-skip mode not chosen), the group-skip flag is set at ‘false’. Optionally, a second flag (called zero-Skip mode) in step 3021 is encoded for notifying the decoder if the given skip vector is a zero vector or the vector calculated in 3020. The given skip vector is calculated in 3020. Still in the second case (group-skip mode not chosen), a group of components of the N vectors is selected. For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. For this group of N scalar values, a rate distortion criterion is calculated in 3006 for deciding if the N scalar values will be encoded as a skip mode (lossy coding) or will be encoded in a lossless way based on a predictive approach. In this step 3006, a new skip mode is proposed (new in reference to the Figures 10a, 10b, 10c). With this new skip mode, the group of N scalar values (corresponding to one component of the N vectors) will be encoded (and decoded) by a skip value (value of a component of the skip vector). This skip value will be determined through the calculation of the skip vector in 3020 (still in a symmetrical way in encoder and decoder for avoiding to encode it and saving bitstream). It is different from the first skip mode wherein the encoded / decoded value is implicitly zero. In 3007, a flag is encoded for notifying the decoder that the skip mode is chosen (if this mode has been chosen by the rate-distortion criterion in 3006). Optionally, in 3008, a new flag is encoded. This skip flag (false / true) is a way to specify which skip mode is chosen (default value is zero or non-zero as calculated in 3020). The next step is 3014. If components have not all been processed, the process returns in 3005 with a new component. If all components have been processed, the process returns to step 3020 and step 3001. 3020 describes the way the given skip vector is calculated. Once a group of N vectors has been encoded, the average vector of the last N encoded motion vector is calculated and set as the given skip vector for the new set of N vectors to be encoded. If the predictive mode is selected in 3006, a flag in 3010 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 3011. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 3011. In step 3012, the chosen predictor index is encoded. In step 3013, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, in 3014, if components have not all been processed, the process returns in 3005 with a new component. If all components have been processed, the process returns to step 3001. As alternative embodiment, it is possible to change the way the module 3008 operates. Indeed, the module 3008 encodes a flag. This flag enables the decoder to know if a zero-skip vector / component or a non-zero skip vector / component is used for a given motion group. The non-zero skip vector is calculated in 3020. However, the module 3020 can also calculate 2 different skip vectors according to two different methods. For example, the first calculated skip vector will be based on the encoded motion vectors of the last motion group whereas the second skip vector will be based on the encoded motion vectors of the last 2 motion groups. Alternatively, the first skip vector will be different from zero only if the last 2 motion groups contain encoded motion vectors different from zero. Figure 10e is an illustration of another inventive method of encoding motion groups according to the current version of VDMC. This figure illustrates the coding of a frame of the base mesh when the INTER mode is used. Similar elements with Figure 10a have same references. An initial set of motion vectors have to be encoded in 5000. In step 5013, the average motion vector of the initial motion field is calculated. This average vector value is encoded in 5014. In 5015, the average vector is subtracted from the initial motion field 1000. After subtraction, the transformed motion vector field is available for the step 5016. If step 5001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 5002. These N vectors form a motion group. In step 5003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by zero vectors at the decoder) or will be encoded per group of components. In the first case, in step 5004, a group-skip flag is set at ‘true’ for being encoded. In the second case, in step 5030, the group-skip flag is set at ‘false’. Still in the second case, a group of components of the N vectors is selected. For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. In other words, the N scalar values corresponding to component 0, 1 and 2 will be separately encoded. For this group of N scalar values, a rate distortion criterion is calculated in 5006 for deciding if the N scalar values will be encoded as a skip mode or will be encoded in a lossless way based on a predictive approach. If the skip mode is selected, in 5007, a flag is encoded for indicating to the decoder that the N components will be decoded as zero. If the predictive mode is selected, a flag in 5008 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 5009. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 5009. In step 5010, the chosen predictor index is encoded. In step 5011, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, if components have not all been processed, the process returns in 5005 with a new component. If all components have been processed, the process returns to step 5001. In short, in a source code of a reference software according to Figure 10a, the notion of component group is added in the INTER base mesh coding. If the motion vectors of a motion group are not encoded in a ‘total’ skip way, the motion vectors of a motion group are encoded component per component: either from a predictive way (prediction and residual encoding in a lossless manner) or from a skip way (component of a motion group skipped / decoded as zero value). In some alternatives, the initial motion field is split into sub motion fields (for example, 4 sub motion fields) and 4 average vectors are calculated and encoded for each of the sub-motion fields. Each sub motion field is transformed by subtracting the associated average vector). The way to calculate the sub motion fields is done in a symmetrical way both in the encoder and decoder. The solution described in Figure 10e may also be combined with the solution proposed in Figure 10d or the solution proposed in Figure 10f. Figure 10f is an illustration of another inventive method of encoding motion groups according to the current version of VDMC. Similar elements with Figure 10a have same references. An initial set of motion vectors have to be encoded in 5000. If step 5001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 5002. These N vectors form a motion group. In step 5020, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by a skip vector at the decoder) or will be encoded per group of components. The skip vector can be a zero or non-zero skip vector and will be calculated in the step 5022. At the beginning of the coding of the current motion field, the value of this vector is the zero vector. In the first case, in step 5004, a group-skip flag is set at ‘true’ for being encoded. In the second case, in step 5030, the group-skip flag is set at ‘false’. Still in the second case, a group of components of the N vectors is selected (5005). For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. In other words, the N scalar values corresponding to component 0,1 and 2 will be separately encoded. For this group of N scalar values, a rate distortion criterion is calculated in 5021 for deciding if the N scalar values will be encoded as a skip mode or will be encoded in a lossless way based on a predictive approach. If the skip mode is chosen, the skip component can be a zero or non-zero skip value and will be calculated through the calculation of the skip vector in step 5022. At the beginning of the coding of the current motion vector, the value of this component of the skip vector is zero. If the skip mode is selected, in 5007, a flag is encoded for indicating to the decoder that the N components will be decoded as a value calculated symmetrically (in a same way) at the encoder and decoder. If the predictive mode is selected, a flag in 5008 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 5009. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 5009. In step 5010, the chosen predictor index is encoded. In step 5011, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, if components have not all been processed, the process returns in 5005 with a new component. If all components have been processed, the process goes in step 5022 for calculating a new skip vector. One example of calculation 5022 is described hereafter: The average vector of the current encoded motion group is calculated. If the value of one of the components of this calculated vector is higher than a given threshold, then the component of the skip vector will take the value of the component of the average vector. If the value of one of the components of this calculated vector is lower or equal to a given threshold, then the component of the skip vector will take the value zero. A second example of calculation of the skip vector is proposed hereafter: The calculation of the new skip vector is done component per component. Let us suppose that the current component to be processed is the component ‘k’ (with k = 1 to 3). If the absolute value of the 2 last average values (the average value is calculated over all the motion vectors of a given motion group) of this component ‘k’ for the last 2 encoded groups is strictly higher than a threshold T (for example T=1 or 2) and the 2 average values have the same sign then the new skip component for the skip vector calculated in 5022 will be the average value of the component ‘k’ of the last encoded group. If this condition is not matched then the component of the skip vector will be zero. The parameter T can be a fixed parameter or a parameter specific to the sequence or the frame to encode. If the parameter is specific to the sequence or to the frame, this parameter can be encoded (and decoded) at the sequence level (for example through Sequence Parameter Set used in VDMC), at the frame level (for example through Frame Parameter Set used in VDMC or at the submesh level). In a similar way, the other parameters of the module 5022 (for example, the number of last encoded motion group involved in the calculation 5022) can be encoded (and decoded) at the sequence level, frame level or submesh level (the submesh being a sub-part of the global mesh). In a third example of calculation of the skip vector, a limited set of vectors (for example, 1 or 5 vectors) can be calculated and encoded at the beginning of each frame. Each vector will be associated to a sub-part of the motion groups (for example the whole set of motion groups can be split in 1 or 5 groups according to a given rule). The encoder in 5022 will choose the vectors corresponding to a given group according to the proposed given rule). The Figure 10f can be explained in an alternative way in relation to Figure 10fa VDMC proposes to encode the base mesh by using either INTRA, INTER or SKI P modes. In the reference software, for the INTER mode, motion vectors are split into motion groups and the motion vectors of a given motion group are encoded either in a ‘total’ skip way (all motion vectors of a motion group are decoded as zero vectors) or in a per-component scheme according to 2 methods: Component Skip method: the component of the motion vectors is ‘encoded’ through a flag and the decoded values are set to zero. Prediction method: the components of a motion group are predicted according to a given prediction index and the residuals of the motion vectors are encoded in a lossless way. When the components of the motion vectors of a motion group are different from zero and have the same sign, the skip mode is never used. This problem mainly exists for the sequences Mitch and Levi (but can occurs for Thomas and Soldier). These sequences are used in the context of MPEG. In the Figure 10f, only one skip mode is used (as in the reference software). A skip vector is calculated after the encoding of each motion group (in a symmetrical way at the encoder and at the decoder) wherein the 3 components of the skip vector can take either zero value or non-zero value. The advantage of this solution is the following one: No additional data to encode (the non-zero skip vector is calculated (and not encoded) in a symmetrical way at the encoder and decoder from previously encoded motion groups) No additional context HLS syntax is unchanged The skip mode can be used when the motion inside a motion group is different from zero. An abstract of this method is proposed in the Figure 10fa. For each new motion group to encode, a skip and a component mode exist. The skip mode is based on a calculated skip vector. The calculated skip vector can have zero components or nonzero components. Once the calculation of the skip vector is done, a new motion group can be encoded. The document ISO 23090-29:2024(E), ISO / IEC JTC 1 / SC 29 / WG 7, Date: 2024-06-03Specification Information technology — Coded representation of immersive media — Part 29: Video-based dynamic mesh coding (V-DMC) proposes a description text of the VDMC. One part of this text can be modified according to embodiments of the current invention as follows; For v = O..bm_vertex_count[ submeshlD ] - 1, the following applies to update the v-th vertex coordinate: - The group index g is derived as follows: vB = v-vN g = vB / ( bmsps_inter_mesh_motion_group_size_minus1 + 1 ) - If bmidu_skip_group_flag[ submeshlD ][ g ] is equal to 1, then currentSubmeshMotionVectors[ v ][ k ] = skipVector[g][k], where k = 0..2 - Otherwise, if bmidu_skip_group_comp_flag[ submeshlD ][ g ][k] is equal to 1, then currentSubmeshMotionVectors[ v ][ k ] = skipVector[g][k], where k = 0..2 (skipVector[g] is calculated in a symmetrical way both in the encoder and decoder after the coding / decoding of the motion group of index ‘g-1 ’. skipVector[g] is used for the group of index ‘g’. After the encoding / decoding of a motion group with group index ‘g-1’, the average motion vector of the encoded / decoded motion vectors of the group ‘g-1’ is calculated (this average vector is called MV_AVG[g-1]). If 2 components of index ‘k’ associated to the last 2 average vectors (MV_AVG[g-2][k] and MV_AVG[g-1][k]) have a same sign and if their absolute values are strictly higher than a given value ‘T=1 ’, then skipVector[k]= MV_AVG[g-1][k], If 2 components of index ‘k’ associated to the last 2 average vectors (MV_AVG[g-2][k] and MV_AVG[g-1][k]) have a different sign or have a absolute value lower or equal to 1 then skipVector[k]= 0). - Otherwise, the prediction mode, mvPredMode[ submeshlD ][ v ][ k] where k = 0..2, is derived as follows: mvPredMode[ submeshlD ][ v ][ k ] = BmiduMvFlag[ submeshlD ][ v ] ? MV_DERIV ED : bmidu_mv_pred_mode_group[ submeshlD][ g ][ k ] Figure 10g is an illustration of another inventive method of encoding motion groups according to the current version of VDMC. In this alternative, we propose to modify the calculation of the prediction vectors. Similar elements with Figure 10a have same references. The figure illustrates the coding of a frame of the base mesh when the INTER mode is used. An initial set of motion vectors have to be encoded in 5000. If step 5001 determines that there are still remaining at least N vectors to be encoded, N vectors are selected to be encoded in step 5002. These N vectors form a motion group. In step 5003, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by zero vectors at the decoder) or will be encoded per group of components. In the first case, in step 5004, a group-skip flag is set at ‘true’ for being encoded. In the second case, in step 5030, the group-skip flag is set at ‘false’. Still in the second case, a group of components of the N vectors is selected. For example, if the motion vectors have 3 components, the N first components of the group of motion vectors is selected for being encoded. In other words, the N scalar values corresponding to component 0, 1 and 2 will be separately encoded. For this group of N scalar values, a rate distortion criterion is calculated in 5006 for deciding if the N scalar values will be encoded as a skip mode or will be encoded in a lossless way based on a predictive approach. If the skip mode is selected, in 5007, a flag is encoded for indicating to the decoder that the N components will be decoded as zero. If the predictive mode is selected, a flag in 5008 is encoded for indicating to the decoder that the N components will be decoded from a prediction process. In such a case, a predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 5023. We suppose here there are three predictor indices, namely predldx = 0, predldx = 1 and predldx = 2. The best predictor index among these indices is selected in step 5023. In step 5010, the chosen predictor index is encoded. In step 5011, for each motion vector component MV(k, i) of the motion group, a predictor (a scalar value) is calculated based on the selected predictor index and a residual Res(k, i) (difference between the motion component MV(k,i) and its prediction(k, i)) is calculated to be encoded. That is Res(k,i)= MV(k,i) - prediction (i = 1 to N, k being the index of the component). After, if components have not all been processed, the process returns in 5005 with a new component. If all components have been processed, the process goes in 5024 before returning to step 5001. In this invention, we propose a new way of using the predictor of index 0 (predldx=0). In the state of the art, using the index 0 means that each component of the motion vectors of a given group will be predicted as a zero value (the residual is encoded after prediction) if the prediction index zero is used for the component of the current group. In the current invention, a value different from zero can be used. This value is called the predicted motion and is calculated in 5024. One example of calculation 5024 is described hereafter. The average vector of the current encoded motion group is calculated. If the value of one of the components of this calculated vector is higher than a given threshold, then the component of the prediction vector associated to the prediction index 0 will take the value of the component of the average vector. If the value of one of the components of this calculated vector is lower or equal to a given threshold, then the component of the prediction vector associated to the prediction index 0 will take the value zero. A second example of calculation of the skip vector is proposed hereafter: The calculation of the new prediction vector is done component per component. Let us suppose that the current component to be processed is the component k’ (with k = 1 to 3). If the absolute value of the 2 last average values (the average value is calculated over all the motion vectors of a given motion group) of this component ‘k’ for the last 2 encoded groups is strictly higher than a threshold T (for example T=1 orT=2) and the 2 average values have the same sign then the new prediction component for the prediction value associated to the prediction index 0 calculated in 5024 will be the average value of the component k’ of the last encoded group. If this condition is not matched then the component of the prediction value associated to the prediction index 0 will be zero. In a third example of calculation of the prediction vector, a limited set of vectors (for example, 1 or 5 vectors) can be calculated and encoded at the beginning of each frame. Each vector will be associated to a sub-part of the motion groups (for example the whole set of motion groups can be split in 1 or 5 groups according to a given rule). The encoder in 5024 will choose the vectors corresponding to a given group according to the proposed given rule). An alternative description of this figure and related problem is the following one and can be understood in reference to the Figure 10ga: This alternative description is a proposal for improving the coding of the base mesh (INTER mode). In particular, this proposal addresses the prediction mode used for coding the motion group. It is proposed to attribute a different value to the predictor associated to the index 0. VDMC proposes to encode the base mesh by using either INTRA, INTER or SKI P modes. In theTMM-v8.0, for the INTER mode, motion vectors are split into motion groups and the motion vectors of a given motion group are encoded either in a ‘total’ skip way (all motion vectors of a motion group are decoded as zero vectors) or in a per-component scheme according to 2 methods: - Component Skip method: the component of the motion vectors is ‘encoded’ through a flag and the decoded value are set to zero Prediction method: the components of a motion group are predicted according to a given prediction index and the residuals of the motion vectors are encoded in a lossless way). For the prediction mode, 3 predictors are used: predldx = 0: the prediction value is zero; predldx = 1: the prediction value is calculated as the ‘non-bias’ average of the neighbouring vectors; - predldx = 2: the prediction value is calculated as the ‘bias’ average of the neighbouring vectors. When the motion vectors of a given frame are mainly different from zero, the predldx zero is never used. This problem exists for some sequences. A short description of the solution is the following one: - A prediction vector is calculated after the encoding of each motion group (in a symmetrical way at the encoder and at the decoder) wherein the 3 components of the prediction vector can take either zero value or non-zero value. The prediction vector is associated to the prediction Index 0. The calculation of this prediction vector is based on the last encoded / decoded. motion group. Advantages of the solution may be the following: - When the motion vectors of consecutive motion groups are ‘similar’ (non-zero and same sign), the index 0 is associated to a prediction vector which is coherent in regards to the motion vectors. The prediction index 0 can be used more often (proposing a larger diversity in the choice of the predictors). This solution can be understood in regards to the Figure 10ga For a new motion group to encode, a skip vector mode or a component mode can be used. The component mode is based either on skip or prediction mode. We propose to use a calculated prediction vector for the predictor associated to the prediction index 0. This calculated prediction vector can take as component either the average value of the last encoded motion group (for the same component) or a zero value. The choice between these 2 modes depends on the absolute value of the average of the last 2 motion groups and on the sign of the average of the last 2 motion groups. Once the calculation of the prediction vector has been done, the next motion group can be encoded. Figure 11 is an illustration of a method of decoding motion groups according to the current version of VDMC for a given frame. In step 1100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 1101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 1102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11). In 1103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to zero in step 1104. If the group-skip flag is ‘false’, the predictor index predldx is decoded in step 1105. Based on this predictor index predldx, each motion vector MV(i) is decoded in step 1106 according to a calculation given below: If the predictor index is 0, the predictor of the current motion vector is the nullvector, If the predictor index is 1, the predictor of the current motion vector is the average non-bias vector of X decoded vectors corresponding to the neighboring of the current vector / vertex, and If the predictor index is 2, the predictor of the current motion vector is the average vector taking into account a bias of X decoded vectors corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector is currently encoded. The average non-bias vector has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion vectors. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector integrating bias has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion vectors while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 1107, the residual Res(i) corresponding to each motion vector MV(i) is decoded and is added in step 1108 to the value of the calculated predictor. After step 1104 or step 1108, the process returns to step 1101. Figure 11a is an illustration of a method of decoding motion groups according to the current version of VDMC for a given frame. This figure is in relation with the Figure 10a. In step 6100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 6101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 6102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11a). In 6103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to zero in step 6104. If the group-skip flag is ‘false’, each component of the group of motion vectors is successively selected in 6105. In 6106, a skip flag is decoded. If the skip mode is decoded, in 6107 and 6108, the N scalar values corresponding to a given component of the N current motion vectors will be set to zero. If the skip mode is not chosen, the predictor index predldx is decoded in step 6109. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 6110 according to a calculation given below: If the predictor index is 0, the predictor of the current motion vector component is zero, If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and - If the predictor index is 6, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 6111, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 6112 to the value of the calculated predictor. After step 6104, 6108, step 6112 or step 6113, the process returns to step 6101 or 6105 according to the number of components remaining to decode. Figure 11b is an illustration of a method of decoding motion groups according to the new inventive version of VDMC for a given frame. This figure is in relation with the Figure 10b. In step 4100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 4101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 4102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11b). In 4103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to zero in step 4104. If the group-skip flag is ‘false’, each component of the group of motion vectors is successively selected in 4105. In 4106, a skip flag is decoded. If the skip mode is decoded, in 4107, a second skip flag is decoded. According to this second skip flag, the decoder will know if a scalar value has to be set to zero in 4108, or if a scalar value has to be decoded in 4109. The N scalar values corresponding to a given component will be set in 4110 to the scalar value set in 4108 or decoded in 4109. If the skip mode is not chosen, the predictor index predldx is decoded in step 4111. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 4112 according to a calculation given below: - If the predictor index is 0, the predictor of the current motion vector component is zero, If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and - If the predictor index is 2, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 4113, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 4114 to the value of the calculated predictor. After step 4104, 4110, step 4114 or step 4115, the process returns to step 4101 or 4105 according to the number of components remaining to decode. In this figure 11b, we propose to decode a second component skip flag in 4107 notifying if the group component will be decoded as a zero or non-zero value (the nonzero value being decoded in 4109). This approach is equivalent to systematically decode a default skip value for the skip-group component (this value being zero or not) and to avoid the decoding of the second skip flag. As alternative, it is also possible to systematically decode the default value (if not zero) in 4109 from a predictive way. For example, for a given component index k of a group of N components, the scalar value can be decoded as the sum of a given predictor and the current decoded scalar value (the scalar value being a residual). For example, if the previous component group has been decoded in a skip way, the predictor can be the decoded scalar value of the previously component group (with same component index). If the previous component group has been decoded from a prediction way, the prediction value can be calculated as a function (for example the average of the N decoded components) of the previous group. As alternative, an additional flag is decoded notifying if prediction is used or not for decoding the default scalar value in 4109. In other words, the default scalar value in 4109 can be decoded either from a predictive or non-predictive way (the selection between these 2 modes being based on the decoded flag). The additional ‘prediction flag’ is decoded for notifying whether the default value is decoded from a predictive or non-predictive way. The choice between these proposed strategies is made according to the strategy defined by the encoder. For the current group of N components, the decoder has to calculate the same predictor as the one calculated by the encoder. As alternative, it is also possible to decode a motion group according to the encoding scheme described in the Figure 10c. In such a case, a residual can be added to the decoded skip value. Figure 11c is an illustration of a method of decoding motion groups according to the new inventive version of VDMC fora given frame. This figure is in relation with Figure 10d. Similar elements with Figure 11b have same references. In step 4100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 4101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 4102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 10d). In 4117, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to the value of the given skip vector in step 4118. The given skip vector is calculated in 4116. Optionally, a flag is decoded in 4117 to select between the given skip vector and the zero vector in 4118. If the optional flag is used and if its value is true then the values of the decoded vector will be the zero vector. If the optional flag is used and if its value is false then the values of the decoded vector will be the given skip vector. If the group-skip flag is ‘false’ in 4117, each component of the group of motion vectors is successively selected in 4105. In 4106, a component skip flag is decoded. According to an implementation, if the component skip mode for a given component is decoded in 4106, optionally, in 4107, a second skip flag is decoded. According to this second skip flag, the decoder will know if the same skip component has to be set to zero in 4108, or if the same skip component calculated in 4116 has to be used in 4119. If the optional step 4107 is not used, the step 4108 will not be used. Only the step 4119 will be conducted. The N scalar values corresponding to a given component will be set in 4110 to the scalar value set in 4108 or in 4119. According to an implementation (not illustrated in the Figure), if the value of the component skip flag is true, then the current component of the group of vectors will be decoded in 4110 as a same skip component / value. If the skip mode is not chosen, the predictor index predldx is decoded in step 4111. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 4112 according to a calculation given below: If the predictor index is 0, the predictor of the current motion vector component is zero, - If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and If the predictor index is 2, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 4113, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 4114 to the value of the calculated predictor. After step 4118, 4110, step 4114 or step 4115, the process returns to step 4116 or 4105 according to the number of components remaining to decode. The step 4116 describes the way the given skip vector is calculated. Once a group of N vectors has been decoded, the average vector of the last N decoded motion vector is calculated and set as the given skip vector for the new set of N vectors to be decoded. Figure 11d is an illustration of a method of decoding motion groups according to a new proposed version of VDMC for a given frame. Similar elements with Figure 11a have same references. This figure is in relation with the Figure 10e. In step 6100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 6101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 6102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11a). In 6103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to zero in step 6104. If the group-skip flag is ‘false’, each component of the group of motion vectors is successively selected in 6105. In 6106, a skip flag is decoded. If the skip mode is decoded, in 6107 and 6108, the N scalar values corresponding to a given component of the N current motion vectors will be set to zero. If the skip mode is not chosen, the predictor index predldx is decoded in step 6109. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 6110 according to a calculation given below: - If the predictor index is 0, the predictor of the current motion vector component is zero, If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and - If the predictor index is 6, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 6111, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 6112 to the value of the calculated predictor. After step 6104, 6108, step 6112 or step 6113, the process returns to step 6101 or 6105 according to the number of components remaining to decode. In 6101, if there is no more vector to decode, the step 6114 is run wherein an average motion vector is decoded. In 6115, the average motion vector is added to each vector of the previously decoded motion field. In some alternatives, the initial motion field is split into sub motion fields (for example, 4 sub motion fields) and 4 average vectors are decoded for each of the sub-motion fields. Each sub motion field is transformed by adding the associated decoded average vector). The way to calculate the sub motion fields is done in a symmetrical way both in the encoder and decoder. Figure 11e is an illustration of a method of decoding motion groups according to a new proposed version of VDMC for a given frame. Similar elements with Figure 11a have same references. This figure is in relation with the Figure 10f. In step 6100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 6101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 6102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11a). In 6103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to a skip vector in step 6120. The initial value of the skip vector is the zero vector. However, it can be updated regularly in 6115 with non-zero components. If the group-skip flag is ‘false’, each component of the group of motion vectors is successively selected in 6105. In 6106, a skip flag is decoded. If the skip mode is decoded, in 6121 and 6122, the N scalar values corresponding to a given component of the N current motion vectors will be set in 6122 to corresponding component value of the skip vector calculated in 6115. The initial value of the skip vector is the zero vector. However, it can be updated regularly in 6115 with non-zero components. If the skip mode is not chosen, the predictor index predldx is decoded in step 6109. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 6110 according to a calculation given below: - If the predictor index is 0, the predictor of the current motion vector component is zero, - If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and If the predictor index is 6, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 6111, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 6112 to the value of the calculated predictor. After step 6120, 6122, step 6112 or step 6113, the process goes to step 6123 or 6105 according to the number of components remaining to decode. In 6123, a new skip vector is calculated. The calculation of this new vector is the same as the one used by the encoder. One example of calculation 6123 is described hereafter: The average vector of the current decoded motion group is calculated. If the value of one of the components of this calculated vector is higher than a given threshold, then the component of the skip vector will take the value of the component of the average vector. If the value of one of the components of this calculated vector is lower or equal to a given threshold, then the component of the skip vector will take the value zero. A second example of calculation of the skip vector is proposed hereafter: The calculation of the new skip vector is done component per component. Let us suppose that the current component to be processed is the component ‘k’ (with k = 1 to 3). If the absolute value of the 2 last average values (the average value is calculated over all the motion vectors of a given motion group) of this component ‘k’ for the last 2 encoded groups is strictly higher than a threshold T (for example T=1) and the 2 average values have the same sign then the new skip component for the skip vector calculated in 6123 will be the average value of the component ‘k’ of the last encoded group. If this condition is not matched then the component of the skip vector will be zero. Whatever the chosen method for calculating the skip vectors, the method has to be the same at the encoder and decoder. In a third example of calculation of the skip vector, a limited set of vectors (for example, 1 or 5 vectors) can be decoded from the bitstream generated by the encoder at the beginning of each frame. Each vector will be associated to a sub-part of the motion groups (for example the whole set of motion groups can be split in 1 or 5 groups according to a given rule). The decoder in 6123 will choose the vectors corresponding to a given group according to the proposed given rule). Next, the process returns in 6101. Experimental results demonstrates that the non-zero skip mode according to embodiments of the disclosure is chosen numerous times according to the rate-distortion criterion. Figure 11f is an illustration of a method of decoding motion groups according to a new proposed version of VDMC for a given frame. Similar elements with Figure 11a have same references. This figure is in relation with the Figure 10g. In step 6100, the number of vectors to be decoded is received. The process for decoding a motion group of N vectors starts (if the number of vectors to be decoded is below N, then the decoding stage of the remaining vectors starts). In step 6101, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 6102, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 11a). In 6103, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the value of the decoded vectors is set to a skip vector in step 6104. The value of the skip vector is the zero vector. If the group-skip flag is ‘false’, each component of the group of motion vectors is successively selected in 6105. In 6106, a skip flag is decoded. If the skip mode is decoded, in 6107 and 6108, the N scalar values corresponding to a given component of the N current motion vectors will be set in 6108 to the vector zero. If the skip mode is not chosen, the predictor index predldx is decoded in step 6109. Based on this predictor index predldx, each motion vector component MV(k,i) is decoded in step 6130 according to a calculation given below: - If the predictor index is 0, the predictor of the current motion vector component is a value calculated in 6134, If the predictor index is 1, the predictor of the current motion vector component is the average non-bias vector component of X decoded vectors components corresponding to the neighboring of the current vector / vertex, and - If the predictor index is 2, the predictor of the current motion vector component is the average vector component taking into account a bias of X decoded vector components corresponding to the neighboring of the current vector / vertex. For example, the value X corresponds to the number of already encoded motion vectors whose associated vertices share a connectivity (an edge) with the current vertex. The current vertex is the 3D point whose motion vector component is currently decoded. The average non-bias value has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion components. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. The average vector component integrating bias has to be understood as an integer vector component whose value is calculated as the integer average of a given number of X motion vector component while integrating a bias or offset value. The bias or offset is the X » 1 (wherein » 1 means bit shifting by 1). More details are given in the Figure 14. In step 6111, the residual Res(i) corresponding to each motion vector component MV(k,i) is decoded and is added in step 6112 to the value of the calculated predictor. After step 6104, 6108, step 6112 or step 6113, the process goes to step 6134 or 6105 according to the number of components remaining to decode. In 6134, a new prediction vector is calculated. The calculation of this new vector is the same as the one used by the encoder. One example of calculation 6134 is described hereafter: The average vector of the current decoded motion group is calculated. If the value of one of the components of this calculated vector is higher than a given threshold, then the component of the prediction vector will take the value of the component of the average vector. If the value of one of the components of this calculated vector is lower or equal to a given threshold, then the component of the prediction vector will take the value zero. A second example of calculation of the skip vector is proposed hereafter. The calculation of the new prediction vector is done component per component. Let us suppose that the current component to be processed is the component ‘k’ (with k = 1 to 3). If the absolute value of the 2 last average values (the average value is calculated over all the motion vectors of a given motion group) of this component ‘k’ for the last 2 encoded groups is strictly higher than a threshold T (for example T=1) and the 2 average values have the same sign then the new prediction component for the prediction vector calculated in 6134 will be the average value of the component ‘k’ of the last encoded group. If this condition is not matched then the component of the prediction vector will be zero. In a third example of calculation of the prediction vector, a limited set of vectors (for example, 1 or 5 vectors) can be decoded from the bitstream generated by the encoder at the beginning of each frame. Each vector will be associated to a sub-part of the motion groups (for example the whole set of motion groups can be split in 1 or 5 groups according to a given rule). The decoder in 6134 will choose the vectors corresponding to a given group according to the proposed given rule). Whatever the chosen method for calculating the skip vectors, the method has to be the same at the encoder and decoder. Next, the process returns in 6101. Figure 12 is an illustration of an improvement of the coding method described with regards to Figure 10. Steps 1201, 1202, 1204 and 1208 to 1211 are similar to steps 1001, 1002, 1004 and 1005 to 1008, respectively. An initial set of motion vectors 1200 has to be encoded. In step 1201, it is determined if there are still remaining at last N vectors to be encoded. If yes, N vectors are selected as a motion group to be encoded, in step 1202. In step 1203, a rate distortion criterion is used for deciding if the current group of N vectors will be skipped (meaning that their values will be replaced by a given vector at the decoder) or will be encoded in a lossless way. The rate distortion criterion is an improvement over the method described with regards to Figure 10. In this improvement, two group-skip modes may be used. The first group-skip mode (‘skipT) is as described above, wherein null motion vectors will be used by the decoder for the vectors of the given motion group. A flag encoding zero default vector is set to ‘true’ in step 1205. However, in the second new group-skip mode (‘skip2’), the flag encoding zero default vector is set to ‘false’ in step 1206. In step 1207, a group motion vector is calculated and encoded. For example, the group motion vector is the average vector of the motion vectors of the current group of N vectors. The best choice in terms of rate distortion between the skipl, skip2 and non group-skip mode is chosen in step 1203. If the group-skip mode is not been chosen, a group-skip flag is set at ‘false’ in step 1208 for being encoded. A predictor index is selected according to a rate distortion criterion among a given set of predictor indices, in step 1209. The best predictor index among these indices is selected in step 1209. In step 1210, the chosen predictor index is encoded. In step 1211, for each of the motion vector, a predictor is calculated based on the selected predictor index and the residual (difference between the motion vector and its predictor) is calculated to be encoded. After one of steps 1205, 1207 or 1211, the process returns to step 1201. When the flag encoding zero default vector is set to ‘true’, the non-zero vector 1207 is encoded. For example, an arithmetic encoder can be used for encoding this vector. It is also possible to encode the vector as the sum of a prediction vector and a residual vector. The prediction vector is calculated in a symmetrical way both in the encoder and in the decoder. The residual is the difference between the non-zero vector and the prediction vector. The residual can be encoded by an arithmetic encoder. The prediction vector can be one vector calculated from the previous motion vectors of the previous group of N vectors. For example, it can be the average vector of the decoded motion vectors of the previous group if the non-skip mode was used for this previous group. It can be the non-zero or zero vector if the motion vectors of the previous group have been encoded in a skip way. In other words, a non-zero skip mode was proposed for the motion vectors of a motion group, i.e., a non-zero skip mode at the vector-level is proposed. With this proposed method, if the non-zero skip mode is chosen, the decoder replaces all the motion vectors of a motion group with a same encoded / decoded non-zero default vector (without residual encoding). We have called this new mode the non-zero skip mode. The non-zero skip mode is applied only for motion vectors (not at the component level). A default skip motion vector is calculated for the current motion group. The nonzero skip mode (based on this default skip motion vector) is compared to other modes at the group level (prediction, zero-skip group vector) according to a rate-distortion criterion. If the non-zero skip mode is selected, the non-zero skip vector (i.e., the default skip motion vector) is encoded. The encoding of the non-zero skip vector can be conducted either directly or as the sum of a predictor (calculated from the encoded / decoded motion vectors of the previous group) and a residual. A prediction flag is encoded to notify the decoder about the direct or predictive decoding of the non-zero skip vector. Figure 13 illustrates an improvement of a decoding method corresponding to the encoding method described with regards to Figure 12. Steps 1301 to 1303 and 1308 to 1311 are similar to steps 1101 to 1103 and 1105 to 1108, respectively. In 1300, the number of vectors to be decoded is received. The process for decoding the N vectors starts (if the number of vectors to be decoded is below N then the decoding stage of the remaining vectors starts). In step 1301, the decoder determines if there are at least N remaining vectors to be decoded. If yes, in step 1302, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the decoding of these remaining vectors is similar to the decoding of a motion group and is not described below and not shown in Figure 13). In step 1303, the group-skip flag is decoded. If the group-skip flag is ‘true’ then a second flag zero default vector is decoded in step 1304 to determine which of the skip 1 and skip2 modes is used. If this flag zero default vector is ‘true’, then the vectors of the group of N vectors is set to null vector in step 1307. If the flag zero default vector is ‘false’, then the group motion vector is decoded in step 1305 and the group of N vectors is set to this group motion vector 1306. For example, an arithmetic decoder can be used for decoding this vector in 1305. It is also possible to decode the vector as the sum of a prediction vector and a residual vector. The prediction vector is calculated in a symmetrical way both in the encoder and in the decoder. The residual is the difference between the non-zero default vector and the prediction vector. The residual can be decoded by an arithmetic encoder. The prediction vector can be one vector calculated from the previous motion vectors of the previous group of N vectors. For example, it can be the average vector of the decoded motion vectors of the previous group if the nonskip mode was used for this previous group. It can be the non-zero or zero default vector if the motion vectors of the previous group have been encoded in a skip way. The prediction vector and the residual vector are summed. If the group-skip flag decoded in step 1303 is ‘false’, the predictor index is decoded in step 1308. Based on this predictor index, each motion vector is decoded in step 1309 as described for step 1106. In step 1310, the residual corresponding to each vector is decoded and is added in step 1311 to the value of the calculated predictor. After one of steps 1306, 1307 or 1311, the process returns to step 1301. Further description of improvements described with regards to Figures 12 and 13, and variants of these improvements is now given using the vocabulary used in the working draft of the VDMC standard. Moreover, the improvements described in Figure 12 and Figure 13 are applied to the base mesh encoder / decoder of VDMC. VDMC proposes to encode the base mesh by using either INTRA, INTER or SKI P mode. For the INTER mode, motion vectors are split into motion groups and the motion vectors of a given motion group are encoded either in a skip way (all motion vectors of a motion group are decoded as null / zero vectors) or in a prediction way (motion vectors of a motion group are predicted according a given prediction index). In this document, we propose to modify the Skip mode. Normative modifications in the VDMC software (and working draft) in relation with the motion compression of the base mesh (INTER mode) are proposed: the skip mode for a motion group is modified by introducing the possibility to encode and decode a nonzero motion vector (and not only a zero-motion vector). This proposal is related to the INTER mode of the compression and decompression of the base mesh. In the source code of the reference software, for a given motion group, when the skip mode is chosen, a zero-motion vector is decoded by the decoder for all the vertices of the given motion group: If sismu_skip_group_flag[ subMeshlD ][ g ] is equal to 1, then currentSubmeshMotionVectors[ v ][ k ] = 0 We propose to add a second “skip” mode wherein a motion vector (different from the zero motion) is encoded and used for all the vertices of the given motion group (if this second ‘skip’ mode is selected, the decoder replaces all the motion vectors of a given group with the encoded / decoded motion vector). For the skip mode, the choice between the zero-motion vector and non-zero motion vector is signaled through a new flag: Flag value false the skip mode uses a zero-motion vector (no default motion vector encoded) for the motion group Flag value true -> the skip mode uses a non-zero skip motion vector (the nonzero skip motion vector is encoded and used after decoding by the decoder). The non-zero skip motion vector is arithmetically encoded directly or as the sum of a prediction vector and a residual vector (the residual vector is arithmetically encoded). The prediction vector is calculated symmetrically at the encoder and decoder. The usage of the direct or prediction mode is signaled to the decoder from a prediction flag. As illustration, the impact of the proposal on the working draft 5.0 “ISO 23090-29:2023, Working Draft 5.0 of VDMC, MDS23318_WG07_N00744, 2023-11-22 10:02:17” are the following (in italics): sismu_skip_vector_flag[ subMeshlD ][ g ]: False: the skip mode is based on a zero-motion vector True: the skip mode uses a non-zero motion vector is encoded sismu_skip_prediction_flag[ subMeshlD ][g ] False: the non-zero motion vector is encoded without prediction True: the non-zero motion vector is encoded from a prediction scheme (residual is encoded) sismu_inter_unit_default ( subMeshlD, vertexCount) { Descript or if( vertexCount >0) sismu_derived_mv_present_flag[ subMeshlD ] ae(v) for( i = 0; i <vertexCount; i++ ) { if(sismu_derived_mv_present_flag[ subMeshlD ]) sismu_mv_signalled_flag[ subMeshlD ][ i ] ae(v) } groupSize = bmsps_inter_mesh_motion_group_size_min us1 + 1 groupCount = ( vertexCount -1) / groupSize + 1 vStart = 0 for(g = 0; g <groupCount: g++ ) { sismu_skip_group_flag[ subMeshlD ][ g ] ae(v) if(sismu_skip_group_flag[subMeshlD][g]) { sismu_skip_vector_flag[ subMeshlD ][g] ae(v) if(sismu_skip_vector_flag[subMeshlD][g]) { sismu_skip_prediction_flag[ subMeshlD ][g ] ae(v) for(k = 0; k< 3; k++) { sismu_mv_skip_abs_gtO[ subMeshlD ][v][ k] ae(v) if (sismu_mv_skip_abs_gtO[ subMeshlD ][v][k]) { sismu_mv_skip_sign[ subMeshlD ][v][ k] ae(v) sismu_mv_skip_abs_gt1 [ subMeshlD ][v][k] ae(v) if (sismu_mv_skip_abs_gt1 [ subMeshlD ][v][k]) { sismu_mv_skip_abs_rem[ subMeshlD ][ v ][ k] ae(v) } } } } if( !sismu_skip_group_flag[ subMeshlD ][ g ]) { sismu_mv_pred_mode_group[ subMeshlD ][ g ] ae(v) if ( g == (groupCount - 1)) groupSize = submeshMotionCount- groupSize * (groupCount - 1) for( v = vStart; v <(vStart+groupSize); v++ ) { if( sismu_mv_signalled_flag[ subMeshlD ][ v ]) { for( k = 0; k <3; k++ ) { sismu_mv_residual_abs_gtO[ subMeshlD ][ v ][ k ] ae(v) if (sismu_mv_residual_abs_gtO[ subMeshlD ][ v ][ k ]) { sismu_mv_residual_sign[ subMeshlD ][ v ][ k ] ae(v) sismu_mv_residual_abs_gt1[ subMeshlD ][ v ][ k ] ae(v) if (sismu_mv_residual_abs_gt1[ subMeshlD ][ v ][ k ]) sismu_mv_residual_abs_rem[ subMeshlD ][ v ][ k ] ae(v) } } } } / / v } vStart += groupSize } } If sismu_skip_group_flag[ subMeshlD ][ g ] is equal to 1 and sismu_skip_vector_flag[ subMeshlD ][ g] is 0, then currentSubmeshMotionVectors[ v ][ k ] = 0. If sismu_skip_group_flag[ subMeshlD ][ g ] is equal to 1 and sismu_skip_vector_flag[ subMeshlD ][ g] is 1, then currentSubmeshMotionVectors[ v ][ k ] = decodedSubmeshSkipVector[v] [k] decodedSubmeshSkipVector[v][k] is calculated according to the following process: If sismu_skip_prediction_flag = 0 then decodedSubmeshSkipVector is directly the result of the decoding of sismu_mv_skip_abs_gtO, sismu_mv_skip_abs_gt1, sismu_mv_skip_sign and sismu_mv_skip_abs_rem. If sismu_skip_prediction_flag = 1 then decodedSubmeshSkipVector is the sum of: • A residual: the decoding of sismu_mv_skip_abs_gtO, sismu_mv_skip_abs_gt1, sismu_mv_skip_sign and sismu_mv_skip_abs_rem • A prediction vector submeshPredictionVector: o The prediction vector submeshPredictionVector is the vector (used symmetrically at the encoder and decoder) calculated as: ■ The average vector of the decoded motion vectors of the previous group if the previous group is encoded by using a nonskip mode, ■ The decodedSubmeshSkipVector vector of the previous group if the previous group is encoded by using a skip mode with nonzero skip motion vector. The zero vector if the previous group is encoded by using a skip mode with a zero-motion vector. Figure 14 illustrates another improvement. The inventor has determined that the motion vector predictor associated to the predictor index 1 and predictor index 2 are often similar. In the embodiment of a coding method shown in figure 14, a new method of generating the motion vector predictor is given. In step 1400 a predictor is selected according to the prediction index predldx: Zero motion: predldx = 0 ; Average motion based on neighbor nodes: predldx = 1; Nonbiased average motion based on neighbor nodes: predldx = 2. It is noted that nodes of the mesh frame are points of the mesh frame. In step 1401, for a given motion vector to be encoded (corresponding to a given current vertex), the predictor associated to the prediction Index 1 is calculated as the average non-biased vector (rounding value) of the already encoded motion vectors of the neighboring vertices of the given current vertex. In step 1402, the predictor associated to the prediction Index 2 is calculated as the average vector integrating a bias or offset of the already encoded motion vectors of the neighboring vertices of the given current vertex. The average non-bias vector has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion vectors. It is called ‘non-bias’ because it does not integrate a bias or offset which is the X » 1 (wherein » 1 means bit shifting by 1). For example, each component of the ‘non-bias’ vector is calculated in an integer way as: mv [ k ]= (mv[ k ] + offset) I count with offset = 0 The average vector integrating bias has to be understood as an integer vector whose value is calculated as the integer average of a given number of X motion vectors while integrating a bias or offset value. The bias is the X » 1 (wherein » 1 means bit shifting by 1). mv [ k ]= (mv[ k ] + offset) I count with offset = X » 1 To improve the process (both at the encoder and decoder sides), in step 1403 (for each motion vector to be encoded), it is determined if the average non-bias vector and the average vector integrating bias are equal. If yes, in step 1404, it is determined if an additional vector different from the null vector is may be calculated as a predetermined function of already encoded motion vectors. Several ways can be used for determining this additional vector. For example, this additional vector can be the average motion vector corresponding to the average vector of the previous encoded group of N vectors. If this additional vector is available then the motion vector predictor corresponding to the predldx 2 is replaced by this additional predictor in step 1405. Figure 15 illustrates another improvement over the prior art. The prediction index predlx may be encoded with a truncated unary code. For example, if the maximum number of predictors is 4 then the following codes are used for encoding predldx: Predldx = 0 (predictor = 0) Code: 0 Predldx = 1 (predictor = average non-biased) ■> Code: 10 Predldx = 2 (predictor = average integrating bias) Code: 110 Predldx = 3 (other prediction calculation) -> Code: 111 The inventor has determined that, for sequences, the average non-biased predictor is almost always used (whereas the zero predictor is more used than the average predictor integrating bias). In such a case, it may be interesting to change the order of the signalling of the predictor (the new predictor order being encoded at the encoder to be signaled and know by the decoder) so that bits saving can be obtained, which means a better compression ratio. For example, with regards to Figure 15, in 1500, the initial order of the predictor is the following: Predldx = 0 (predictor = 0) Code: 0 Predldx = 1 (predictor = average non-biased) Code: 10 Predldx = 2 (predictor = average integrating bias) Code: 11 In step 1501, some statistics about the usage of the used prediction function (meaning statistics about the values of predldx) are calculated (e.g., from the last previous encoded frame) or estimated before starting the coding of the current frame. In step 1502, it is determined if the statistics of the predictors is changed as compared to previous statistics. If yes, in step 1503, a new indexing of the predictors is generated. An example of new indexing is given in figure 15. This new order is encoded (at the submesh level for a frame, at the frame level or at the GoF level) in step 1504. When the new order will be decoded by the decoder, the decoder will know which predictor to calculate according to the index of the predictor. Further description of improvements described with regards to Figure 15, and variants of these improvements are now given: using the vocabulary used in the working draft of the VDMC standard. Moreover, the improvement described with regards to figure 15 is applied on the base mesh encoder / decoder of VDMC. VDMC proposes to encode the base mesh by using either INTRA, INTER or SKI P mode. For the INTER mode, motion vectors are split into motion groups and the motion vectors of a given motion group are encoded either in a skip way (all motion vectors of a motion group are decoded as null / zero vectors) or in a prediction way (motion vectors of a motion group are predicted according to a given prediction index). In this document, we propose to modify the way the prediction index is used. Normative modifications in the VDMC software (and working draft) in relation with the motion compression of the base mesh (INTER mode) are proposed: a flag is introduced in order to change the order of the motion predictors. This proposal is related to the INTER mode of the compression and decompression of the base mesh. In the source code of the reference software, for a given motion group encoded with the prediction mode, the following association between predictor index and prediction vector is used: Predldx = 0 (prediction vector is zero motion) -> Predldx (arithmetically) encoded with the code word: 0 Predldx = 1 (prediction vector is an average non-bias vector) -¼ Predldx (arithmetically) encoded with the code word: 10 Predldx=2 (prediction vector is an average vector taking into account a bias) Predldx (arithmetically) encoded with the code word: 11 It has been observed that for some sequences, the average non-bias predictor (Predldx = 1) is almost always used (whereas the zero predictor is almost never used). In such a case, it may be interesting to change the order of the signalling of the predictor (the new predictor order is encoded at the encoder to be decoded and known by the decoder) so that bits saving can be obtained. We propose to signal two predictor orders. To do that, a flag is encoded for a given submesh of type INTER. If this flag is false, the default order of the predictors is kept unchanged. If this flag is true, the following associations between predictor index and predictor code word is used: Predldx = 0 (prediction vector is an average non-bias vector) Predldx (arithmetically) encoded with the code word: 0 Predldx = 1 (prediction vector is an average vector taking into account a bias) Predldx (arithmetically) encoded with the code word: 10 Predldx=2 (prediction vector is zero) -> Predldx (arithmetically) encoded with the code word: 11 In our simulation, a first non-normative automatic evaluation is done at the encoder side in order to calculate the ‘best’ predictor order and set the value of the flag. The signalling of the flag could be integrated at the submesh level (for example, in the ‘sismu_inter_unit_default structure’). The impact of the proposal on the working draft 5.0 ISO 23090-29:2023, Working Draft 5.0 of VDMC, MDS23318_WG07_N00744, 2023-11-22 10:02:17 are the following 5 (in italics). A flag sismu_prediction_order_flag [ subMeshlD ] is added: False: the default order of the predictors is kept True: the order of the predictors is changed as described below: sismu_inter_unit_default ( subMeshlD, vertexCount) { Descript or if( vertexCount >0) { sismu_derived_mv_present_flag[ subMeshlD ] ae(v) sismu_prediction_order_flag[ subMeshlD ] ae(v) } for( i = 0; i <vertexCount; i++ ) { if(sismu_derived_mv_present_flag[ subMeshlD ]) sismu_mv_signalled_flag[ subMeshlD ][ i ] ae(v) } groupSize = bmsps_inter_mesh_motion_group_size_min us1 + 1 groupCount = (vertexCount -1) / groupSize + 1 vStart = 0 for( g = 0; g <groupCount: g++ ) { sismu_skip_group_flag[ subMeshlD ][ g ] ae(v) if( lsismu_skip_group_flag[ subMeshlD ][ g ]) { sismu_mv_pred_mode_group[ subMeshlD ][ g ] ae(v) if ( g == (groupCount - 1)) groupSize = submeshMotionCount- groupSize * (groupCount - 1) for( v = vStart; v <(vStart+groupSize); v++ ) { if( sismu_mv_signalled_flag[ subMeshlD ][ v ]) { for( k = 0; k <3; k++ ) { sismu mv residual abs gtO[ subMeshlD ][ v ][ k 1 ae(v) if (sismu_mv_residual_abs_gtO[ subMeshlD ][ v ][ k ]) { sismu_mv_residual_sign[ subMeshlD ][ v ][ k ] ae(v) sismu_mv_residual_abs_gt1[ subMeshlD ][ v ][ k ] ae(v) if (sismu_mv_residual_abs_gt1[ subMeshlD ][ v ][ k ]) sismu_mv_residual_abs_rem[ subMeshlD ][ v ][ k ] ae(v) } } } } / / v } vStart += groupSize } } The decoding process would be changed according to the value of the flag sismu_prediction_order_flag[ subMeshlD ]. For example, in the section H.12.3 of the document “ISO 23090-29:2023, Working Draft 5.0 of VDMC, 5 MDS23318_WG07_N00744, 2023-11-22 10:02:17”, the following text (in green) could be added: If the sismu_prediction_order_flag[ subMeshlD flag is false then the following decoding process is applied: If the prediction mode, MvPredMode[ subMeshlD ][ v ] is equal to 0, then 10 currentSubmeshMotionVectors[ v ][ k ] = VertexMotionVectorResiduals[ v ][ k ] Otherwise, when sismu_mv_pred_mode[ v ] is greater than 0, then currentSubmeshMotionVectors[ v ][ k ] = VertexMotionVectorResiduals[ v ][ k ] + currentSubmeshPredictedMotionVectors[ v ][ k ] The predicted motion vector currentSubmeshPredictedMotionVectors[ v ] is derived by applying the following process: for( k = 0; k <3; k++) { mv[ k ] = 0 count = 0 for( n = 0; n <vertexNeighboursCounts[ v ]; n++ ) { w = vertexNeighbours[ v ][ n ] if (w <v) { mv[ k ] += currentSubmeshMotionVectors[ v ][ w ] count += 1 } } if ( count >1) { offset = MvPredMode[subMeshlD][ v ] == 2 ? count »1:0 if ( mv[ k ] >0) { mv [ k ]= (mv[ k ] + offset) / count } else if ( mv[ k ] <0) { mv [ k ]= -(-mv[ k ] + offset) I count } } currentSubmeshPredictedMotionVectors[ v ] = mv } If the sismu_prediction_order_flag[ subMeshlD flag is true then the following decoding process is applied: If the prediction mode, MvPredMode[ subMeshlD ][ v ] is equal to 2, then currentSubmeshMotionVectors[ v ][ k ] = VertexMotionVectorResiduals[ v ][ k ] Otherwise, when sismu_mv_pred_mode[ v ] is strictly below 2, then currentSubmeshMotionVectors[ v ][ k ] = VertexMotionVectorResiduals[ v ][ k ] + currentSubmeshPredictedMotionVectors[ v ][ k ] The predicted motion vector currentSubmeshPredictedMotionVectors[ v ] is derived by applying the following process: for( k = 0; k <3; k++) { mv[ k ] = 0 count = 0 for( n = 0; n <vertexNeighboursCounts[ v ]; n++ ) { w = vertexNeighbours[ v ][ n ] if (w <v) { mv[ k ] += currentSubmeshMotionVectors[ v ][ w ] count += 1 } } if ( count >1) { offset = MvPredMode[subMeshlD][ v ] == 1 ? count »1:0 if ( mv[ k ] >0) { mv [ k ]= (mv[ k ] + offset) / count } else if ( mv[ k ] <0) { mv [ k ]= -(-mv[ k ] + offset) / count } } currentSubmeshPredictedMotionVectors[ v ] = mv } Figure 16 illustrates another improvement. An initial set of motion vectors 1600 to encode is available. In step 1601, a group of N motion vectors is selected (if less motion vector to encode is remaining, all remaining vectors are selected to be encoded). In step 1601, the encoder determines if there are at least N remaining vectors to be encoded. If yes, in step 1602, N vectors are selected and constitute a motion group. Otherwise, the remaining vectors are selected (the encoding of these remaining vectors is similar to the encoding of a motion group and is not described below and not shown in Figure 16). In step 1603, decision is taken about splitting / partionning the group of N motion vectors. For example, a rate-distortion criterion can be used for deciding which partition is the less costly to encode. In this figure 16, we consider that the partition (if decided in step 1603) consists in splitting the group in two sub-groups. It is noted that other partitions can be used, as described later. If the partitioning is not decided, a splitting flag is encoded as ‘false’ in step 1604. If the partitioning is decided, a splitting flag is encoded as ‘true’ in step 1605. According to the partitioning decision, one or two groups are generated in step 1606. In step 1607, a sub-group of the partition is considered. In step 1608, N1 vectors of the sub-group are selected to be encoded. A decision is taken in step 1609 to determine if the N1 selected motion vectors have to be encoded as group-skip mode. In such a case, a group-skip flag is set to ‘true’ in step 1610 and encoded. If the non-group-skip mode is selected, a group-skip flag is set to ‘false’ in step 1611 and encoded. Next, in step 1612, one predictor index is selected. The predictor index is encoded in step 1613. In step 1614, each motion vector of the selected group is encoded in a lossless way as a motion residual (for each vector, a residual is calculated and encoded as described above). In step 1615, the next group of N1 motion vectors is selected for being encoded and the process returns to step 1608. When all the groups of N1 vectors have been processed, the process returns to step 1601. Figure 17 illustrates a decoding method in relation with the coding method described with regards to figure 16. In step 1700, the number of motion vectors to decode is determined. In step 1701, the decoding of N motion vectors starts. A splitting flag is decoded in 1702. If the spitting flag is ‘true’, then the group of N motion vectors is split in two groups of N / 2 motion vectors, in step 1703. If not, in step 1704, only one sub-group is considered. In step 1705, the decoding of each of the sub-group starts, each subgroup being successively processed. In step 1706, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the motion vectors corresponding to the vertices of the group are set to 0 as shown in step 1708, wherein each vertex of the group is selected and step 1709, wherein the motion vectors are set to 0. If the group-skip flag is ‘false’, then the predictor index is decoded in step 1707. For each vertex, in step 1710, the motion vector is decoded by: - Calculating the motion vector predictor, according to the predictor index, in step 1711, Decoding the residual, in step 1712, and Summing the predictor and the residual as decoded motion value, in step 1713. In step 1714, the decoding of the next remaining subgroup is started and the process returns to step 1705. When all the groups of N1 vectors have been processed, if a step 1715 determines that there is a next group of N vectors, the process returns to step 1701. Figure 18 illustrates a variant of the embodiments shown in figure 16 (encoder) and figure 17 (decoder). However, only the decoder is described. In this variant, the number of generated sub-groups is higher than two. In 1800, the number of motion vectors to decode is determined. In step 1801, the decoding of N motion vectors starts. A partition information (encoded by the encoder) is decoded in step 1802. This information enables to obtain, in step 1804, a list of sub-groups with the number of elements per sub-group. More details will be given with regards to Figure 19. In step 1805, the decoding of each of the sub-group starts (we suppose here that there are maxLoop sub-groups), the sub-groups being processed successively. In step 1806, the group-skip flag is decoded. If the group-skip flag is ‘true’, then the motion vectors corresponding to the vertices of the sub-group are set to 0 as shown in step 1808, wherein each vertex of the group is selected, and step 1809, wherein the motion vectors are set to 0. If the group-skip flag is ‘false’, then the predictor index is decoded in step 1807. For each vertex 1810, the motion vector is decoded by: - Calculating the motion vector predictor according to the predictor index, in step 1811, Decoding the residual, in step 1812, and Summing the predictor and the residual as decoded motion value, in step 1813. In step 1814, the decoding of the next subgroup is started while remaining subgroups exist. When all the groups of N1 vectors have been processed, if a step 1815 determines that there is a next group of N vectors, the process returns to step 1801. Figure 19 illustrates decomposition of a group of vectors into sub-groups. This figure 19 illustrates the way the partition can be encoded. In a group of N motion vectors 1900 is encoded. A first splitting flag 1901 is generated. If it is ‘false’, then the partition corresponds to a unique group of N motion vectors. If the first spitting flag is ‘true’ (as in 1901) then two sub-groups may exist and for each of this sub-group, a subdivision is possible. For example, in 1902, a second spitting flag is set to ‘false’ meaning that the first sub-group is not split. In 1903, a second splitting flag is ‘true’ meaning that two sub-sub-groups are possible. Once again, for each of the sub-sub groups, a splitting flag is encoded. The next flags are visible in 1904, 1905, 1906 and 1907. For the last level of decomposition, the flag are not mandatory. For example, it can be stated that the minimum size of a sub-group is 4 (meaning 4 vectors in the sub-group). Once this size is obtained, the splitting is stopped and does not need to be signaled at the decoder. In 1908, the result of the partition is displayed, consisting in 4 groups with respectively N / 2, N / 4, N / 8 and N / 8 elements. Figure 21 is a schematic block diagram of a computing device 2100 for implementation of one or more embodiments of the invention. The computing device 2100 may be a device such as a micro-computer, a workstation or a light portable device. The computing device 2100 comprises a communication bus connected to: - a central processing unit 2101, such as a microprocessor, denoted CPU; - a random access memory 2102, denoted RAM, for storing the executable code of the encoding method and / or decoding method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing the methods according to embodiments of the invention, the memory capacity thereof can be expanded by an optional RAM connected to an expansion port for example; - a read-only memory 2103, denoted ROM, for storing computer programs for implementing embodiments of the invention, preferably a programmable ROM; - a network interface 2104 is typically connected to a communication network over which digital data to be processed are transmitted or received. The network interface 2104 can be a single network interface, or composed of a set of different network interfaces (for instance wired and wireless interfaces, or different kinds of wired or wireless interfaces). Data packets are written to the network interface for transmission or are read from the network interface for reception under the control of the software application running in the CPU 2101; - a graphical user interface 2105 may be used for receiving inputs from a user or to display information to a user; - a hard disk 2106 denoted HD may be provided as a mass storage device; - an I / O module 2107 may be used for receiving / sending data from / to external devices such as a video source or display. The executable code may be stored either in read only memory 2103, on the hard disk 2106 or on a removable digital medium such as for example a disk. According to a variant, the executable code of the programs can be received by means of a communication network, via the network interface 2104, in order to be stored in one of the storage means of the communication device 2100, such as the hard disk 2106, before being executed. The central processing unit 2101 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to embodiments of the invention, which instructions are stored in one of the aforementioned storage means. After powering on, the CPU 2101 is capable of executing instructions from main RAM memory 2102 relating to a software application after those instructions have been loaded from the program ROM 2103 or the hard disk (HD) 2106 for example. Such a software application, when executed by the CPU 2101, causes the steps of the flowcharts of the invention to be performed. Any step of the algorithms of the invention may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC (“Personal Computer”), a DSP (“Digital Signal Processor”) or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA (“Field-Programmable Gate Array”) or an ASIC (“Application-Specific Integrated Circuit”). Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention. Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate. Each of the embodiments of the invention described above can be implemented solely or as a combination of a plurality of the embodiments. Also, features from different embodiments can be combined where necessary or where the combination of elements or features from individual embodiments in a single embodiment is beneficial. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.

Claims

1. A method for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising, for encoding a current mesh frame:determining a common predictor for encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame,- encoding a flag value indicating whether the common predictor is null or not, and - encoding the common predictor if the common predictor is not null.

2. The method of claim 1, further comprising:selecting, according to a first predetermined decision criterion, an encoding mode for encoding motion vectors representing changes in positions of points of the mesh between the current mesh frame and the reference mesh frame, wherein the encoding mode is selected among a set of encoding modes comprising a skip mode and an inter mode, andencoding at least one flag value indicating whether the skip mode or the inter mode is selected.

3. The method of claim 2, wherein, if the skip mode is selected, the common predictor encodes the plurality of motion vectors associated with all the points of the current mesh frame.

4. The method of either one of claims 2 or 3, wherein, if the inter mode is selected, a plurality of motion groups of the motion vectors of the current frame mesh are constituted, and for each motion group a decision is made, according to a third predetermined decision criterion, of an encoding mode for said motion group, wherein the encoding mode is selected among a group skip mode and a group inter mode.

5. The method of claim 4, wherein, if the group skip mode is selected for a group of motion vectors, the steps of determining a common predictor, encoding a flag and encoding the common predictor are applied for the plurality of motion vectors of the group.

6. The method of either one of claims 4 or 5, wherein, if the group inter mode is selected for a group of motion vectors, a plurality of motion components groups corresponding to the motion vectors of the group are constituted, each motion component group being encoded separately.

7. The method of claim 6, further comprising:selecting, according to a second predetermined decision criterion, an encoding mode for encoding motion components groups, wherein the encoding mode is selected among a set of encoding modes comprising a group component skip mode and a group component inter mode, and- encoding at least one flag value indicating whether the group component skip mode or the group component inter mode is selected.

8. The method of claim 7, wherein, if the group component inter mode is selected for a motion components group, each motion vector component of the motion components group is encoded using a corresponding predictor and a residual.

9. The method of either one of claims 7 or 8, wherein, if the group component skip mode is selected for a motion components group, a skip value flag is encoded, said skip value flag indicating whether a common component predictor (default component) is null or not.

10. The method of either one of claims 7 or 8 or 9, wherein, if the group component skip mode is selected for a motion components group, a prediction flag is encoded, said flag indicating whether a common component predictor (default component) is encoded using a predictor or not.

11. The method of any one of claims 4 to 10, wherein, if the group inter mode is selected for a group of motion vectors, each motion vector of the group is encoded using a corresponding predictor and a residual.

12. The method according to any one of claims 4 to 11, wherein motion groups including the same number of motion vectors are constituted, the method further comprising, iteratively in at least one iteration:- a step of deciding, according to a fourth predetermined criterion, a sub-division of the motion group,- if a sub-division is decided, a step of sub-dividing the motion group into sub-motion groups having fewer motion vectors than said motion group, and- for each sub-motion group, in a decision step, a decision is made according to a fifth predetermined decision criterion, of an encoding mode for said sub-motion group, wherein the encoding mode is selected among the group skip mode and the group inter mode.

13. The method according to claim 12, wherein the fourth predetermined criterion of the step of deciding a sub-division of the motion group uses a rate-distortion criterion.

14. The method according to either one of claims 12 or 13, wherein the step of deciding a sub-division of the motion group comprises determining which partition of the motion group is the less costly to encode.

15. The method according to any one of claims 12 to 14, wherein the number of iterations is determined according to a sixth predetermined criterion.

16. The method according to any one of claims 2 to 15, wherein the first predetermined decision criterion is a distortion criterion minimizing the sum of a rate of compression of encoded data and a weighting of a distortion associated with the encoding modes.

17. A method for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising, for decoding a current mesh frame:- decoding a flag value indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and decoding the common predictor if the common predictor is not null.

18. The method of claim 17, further comprising:- decoding at least one flag value indicating whether a skip mode or an inter mode has been selected for encoding motion vectors representing changes in positionsof points of the mesh between the current mesh frame and the reference mesh frame, anddecoding the motion vectors according to a decoding mode corresponding to the selected encoding mode.

19. The method of claim 18, further comprising, if the skip mode is indicated, decoding the common predictor as the only one motion vector associated with all the points of the current mesh frame.

20. The method of either one of claims 18 or 19, further comprising, if the group inter mode is selected for a group of motion vectors, decoding a plurality of motion components groups corresponding to the motion vectors of the group.

21. The method of claim 20, wherein the decoding of the plurality of motion components groups is performed according an encoding mode indicated by at least one flag value indicating whether a group component skip mode or a group component inter mode is used.

22. The method of claim 21, wherein, if the group component inter mode has been selected for a motion components group, each motion vector of the motion components group is decoded using a corresponding predictor and a residual.

23. The method of any of one of claims 21 or 22, wherein, if the group component skip mode has been selected for a motion components group, a skip value flag is decoded, said skip value flag indicating whether a common component predictor (default component) is null or not.

24. The method of any of one of claims 21 or 22 or 23, wherein, if the group component skip mode has been selected for a motion components group, a prediction flag is decoded, said flag indicating whether a common component predictor (default component) is encoded using a predictor or not.

25. The method of either one of claims 18 to 24, further comprising, if the inter mode is indicated, for each motion group of a plurality of motion groups of the motion vectors ofthe current frame mesh, decoding whether an encoding mode used for encoding said motion group is a group skip mode and a group inter mode based on at least one flag.

26. The method of claim 25, further comprising, if the group skip mode has been used for encoding a group of motion vectors, decoding a common predictor, decoding the flag indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and applying the common predictor to the plurality of motion vectors of the group.

27. The method of either one of claims 25 or 26, wherein, if the group inter mode has been used for encoding a group of motion vectors, each motion vector of the group is decoded using a corresponding predictor and a residual.

28. The method according to any one of claims 25 to 27, further comprising constituting motion groups including the same number of motion vectors, and, iteratively in at least one iteration:- decoding a sub-division of the motion group,- if a sub-division is decoded, a step of sub-dividing the motion group into sub-motion groups having fewer motion vectors than said motion group, and- for each sub-motion group, decoding an encoding mode used for encoding said submotion group, wherein the encoding mode is the group skip mode or the group inter mode.

29. A device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for encoding a current mesh frame by:- determining a common predictor for encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, encoding a flag value indicating whether the common predictor is null or not, and encoding the common predictor if the common predictor is not null.

30. A device for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for decoding a current mesh frame by:- decoding a flag value indicating whether a common predictor encoding a plurality of motion vectors associated with a plurality of points of the current mesh frame relatively to a reference mesh frame, is null or not, and- decoding the common predictor if the common predictor is not null.

31. A method for encoding a mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising:- a step of encoding a first frame of said mesh,- a step of selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded; said method being characterized in that, if the inter mode is selected, the method further comprises:- a step of associating calculation methods of prediction vectors according to prediction indexes using a truncated unary code- a step of encoding the association between predictor indexes and calculation methods of the motion vectors.

32. The method according to claim 31, that further includes a step of calculating statistics about prediction indexes corresponding to predictors already used for encoding a previous frame of said mesh frame, and a step of assigning a shorter unary code to the statistically most used prediction index.

33. The method according to either one of claims 31 or 32, wherein the step of encoding the association includes a step of encoding an order of predictor indexes associated with calculation methods.

34. A method for decoding a mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising:- a step of decoding a first frame of said mesh,- a step of decoding an encoding mode used for encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode has been selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded;- a step of decoding an association between predictor indexes and calculation methods of the motion vectors.

35. The method according to claim 34, wherein the step of decoding the association includes a step of decoding an order of predictor indexes associated with calculation methods.

36. A device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for: - encoding a first frame of said mesh,- selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded;said method being characterized in that, if the inter mode is selected, the method further comprises:- associating calculation methods of prediction vectors according to prediction indexes using a truncated unary code- encoding the association between predictor indexes and calculation methods of the motion vectors.

37. A device for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured, for:- decoding a first frame of said mesh,- decoding an encoding mode used for encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode has been selected among a set ofencoding modes comprising at least an inter mode, wherein the at least two motion vectors of the first mesh frame are encoded;- decoding an association between predictor indexes and calculation methods of the motion vectors.

38. A method for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising:- a step of encoding a first frame of said mesh, and- a step of encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors;and, if two calculated predictors are equal:- a step of determining if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors.

39. The method according to claim 28, which further comprises:- a step of selecting, according to a predetermined decision criterion, an encoding mode for motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein the encoding mode is selected among a set of encoding modes comprising at least an inter mode, wherein motion vectors of at least two motion vectors of the first mesh frame are encoded; and- if the inter mode is selected, the predetermined number of predictors corresponding to a motion vector to be encoded are calculated.

40. The method according to either one of claims 28 and 29, wherein a first predictor is calculated as the average non-biased vector of the already encoded motion vectors of a predetermined number of points neighboring the point of the first mesh frame to which the motion vector to be encoded applies, and a second predictor is calculated as the average vector of the already encoded motion vectors of the predetermined number of points neighboring the point, of the first mesh frame to which the motion vector to be encoded applies, and if the first predictor and the second predictor are equal, it isdetermined if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors.

41. The method according to any one of claims 38 to 40, wherein the additional vector is an average motion vector of a previous encoded group having a predetermined number of vectors.

42. The method according to any one of claims 38 to 41, wherein, if the additional vector may be calculated as a predetermined function of previously encoded motion vectors, then the predictor corresponding to the second predictor is replaced by this additional predictor.

43. A method for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the method comprising:- a step of decoding a first frame of said mesh, and- a step of decoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors, the method further comprising, if at least one decoded flag value indicates that two calculated predictors are equal and that an additional vector calculated as a predetermined function of previously encoded motion vectors and different from the null vector has been encoded:- a step of decoding the additional vector.

44. A device for encoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for:- encoding a first frame of said mesh, and- encoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors;and, if two calculated predictors are equal:- determining if an additional vector different from the null vector may be calculated as a predetermined function of previously encoded motion vectors.

45. A device for decoding a dynamic mesh comprising points whose positions may vary in time forming temporal mesh frames, the device comprising a processor configured for: - decoding a first frame of said mesh, and- decoding motion vectors representing changes in positions of the points of the mesh between the first frame of said mesh and a second frame of said mesh, wherein a predetermined number of predictors corresponding to a motion vector to be encoded are calculated as functions of a plurality of already encoded motion vectors,the method further comprising, if at least one decoded flag value indicates that two calculated predictors are equal and that an additional vector calculated as a predetermined function of previously encoded motion vectors and different from the null vector has been encoded, decoding the additional vector.

46. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to any one of claims 1 to 18, 21 to 25 or 28 to 33, when loaded into and executed by the programmable apparatus.

47. A computer-readable storage medium storing instructions of a computer program for implementing a method according to any one of claims 1 to 28, 31 to 35 or 38 to 43.

48. A computer program which upon execution causes the method of any one of claims 1 to 28, 31 to 35 or 38 to 43 to be performed.

Citation Information

Patent Citations

  • Decoding and reconstruction of time-based and / or multidimensional signals in a tiered temporal hierarchy

    CN104620581A

  • Video coding method, and video coder

    EP3174299A1

  • Coding scheme for a data stream representing a temporally varying graphics model

    US20070242894A1

  • Luma and Chroma Decoding Using a Common Predictor

    US20090092187A1

  • Encoding and decoding based on blending of sequences of samples along time

    US20130301946A1