WO2022129737A1 - Procédé et dispositif de compression de données représentatives d' une scène tridimensionnelle volumétrique en vue d'une décompression en temps réel pour un visionnage en ligne - Google Patents

Procédé et dispositif de compression de données représentatives d' une scène tridimensionnelle volumétrique en vue d'une décompression en temps réel pour un visionnage en ligne Download PDF

Info

Publication number
WO2022129737A1
WO2022129737A1 PCT/FR2021/052252 FR2021052252W WO2022129737A1 WO 2022129737 A1 WO2022129737 A1 WO 2022129737A1 FR 2021052252 W FR2021052252 W FR 2021052252W WO 2022129737 A1 WO2022129737 A1 WO 2022129737A1
Authority
WO
WIPO (PCT)
Prior art keywords
blocks
frames
texture
textures
meshes
Prior art date
Application number
PCT/FR2021/052252
Other languages
English (en)
Inventor
Michaël ADAM
Clément MENIER
Original Assignee
4D View Solutions
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 4D View Solutions filed Critical 4D View Solutions
Priority to DE112021006478.9T priority Critical patent/DE112021006478T5/de
Priority to GB2309035.0A priority patent/GB2616566A/en
Priority to JP2023537222A priority patent/JP2024503787A/ja
Priority to US18/267,894 priority patent/US20240040101A1/en
Priority to KR1020237023968A priority patent/KR20230119694A/ko
Publication of WO2022129737A1 publication Critical patent/WO2022129737A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Definitions

  • TITLE Method and device for compressing data representative of a volumetric three-dimensional scene for real-time decompression for online viewing.
  • the invention relates to a method and a device for compressing data representative of a volumetric three-dimensional scene with a view to real-time decoding for online viewing of a volumetric video by an end user.
  • the object of the invention is to compress vo 1 umetric data, which are representative of three-dimensional scenes, with a view to “online” viewing by an end user.
  • the volumetric data are obtained from the capture of a three-dimensional scene by photogrammetry, that is to say by means of a set of cameras, consisting of 106 cameras in this case. , each capturing an image of the scene from a particular angle at a frequency of the order of 30 to 60 images taken per second.
  • point clouds are representative of the surfaces, seen by the cameras, of the elements of the scene, and serve as a basis for the modeling of the scene by a mesh of connected triangles. continuously to each other, on which a texture is. plated, independently for each frame at first.
  • a geometric tracking of the mesh is operated in time, consisting in approaching the constituent meshes of the frames by deformation of a reference mesh belonging to a frame called "keyframe or “keyframe”, so that the meshes of the following frames have the same number of triangles and the same connectivities as this reference mesh.
  • interframes The frames whose mesh is defined on the basis of the mesh of a keyframe, located between two keyframes, are called “interframes” or “interframes”.
  • the compression of the data concerning the mesh benefits from the temporal redundancies between the neighboring frames whose mesh is based on that of the same key frame.
  • a mesh of a keyframe is fully encoded, while only mesh variations are encoded for interframes, which is more economical in terms of resulting data volume and. computationally intensive for their decodings than the complete encoding and decoding of the meshes of each frame.
  • each frame corresponds to a complete atlas of textures which must be encoded and then decoded entirely during compression and decompression, respectively, according to the principle of MPEG and H.264 compression standards.
  • the video temporal compression of this type of process is based, in this order, on the definition of blocks by cutting out an image, the comparison between blocks of two adjacent frames, then the encoding/compression of a difference between two blocks; during decoding, this difference is applied individually to each pixel.
  • the methods of this type are intended to provide the lowest possible transmission rate on a computer network , without consideration for the transfer of images between the processor and the graphics card of a computer processing these image data streams . or for the occupation of the memory of the graphics card.
  • the invention aims to improve on the one hand. the compression of the information relating to the meshes of the frames of a volumetric video stream, and on the other hand to the information relating to the textures associated with these same frames.
  • the invention relates more particularly to a method for compressing a volumetric video stream of a three-dimensional action scene represented by a plurality of frames, the method being implemented by computer, and according to which a mesh is generated and a texture for each frame of the scene and groups of frames each comprising a keyframe and inter-frames are defined, the meshes of which are defined with respect to the mesh of the corresponding keyframe, the method comprising a step of compressing the information representative of the textures, the texture compression step comprising, for each group of frames, the steps of compressing the information representative of the textures of each of the frames of the group according to a block compression method capable of forming blocks that can be directly exploited by a graphics processing unit conventional according to standard algorithms such as DXT, ASTC or PVRTC, thus defining blocks of pixels directly usable by a conventional graphics processing unit, and comprising blocks associated with the key frame and blocks associated respectively with each of the inter-frames ; determine, from the blocks associated with the keyframe and the blocks associated with the interframes, on
  • the compression of the information representative of the textures takes advantage in particular of the temporal correspondence which exists between the textures of the successive frames forming a volumetric video stream, avoiding the coding, the transmission, then the decoding of redundant information.
  • the decompression of the encoded video stream by means of the compression method according to the invention has a low computational cost and the level of compression can be easily chosen by means of a simple parameter, making it possible to adapt the compromise between the level of compression and the ease of decompressing to the needs of the user and therefore of obtaining a volumetric video flux particularly suitable for online reading in real time.
  • the steps of encoding the composite textures of the keyframes and the textures of the inter-frames can comprise compression by entropy coding;
  • the step of determining the first blocks and the second blocks can comprise a step of evaluating quantified graphical differences of the blocks of a group of frames of a given position relative to each other , this step of evaluating based on calculations such as PSNR (Peak Signal to Noise Ratio) calculations between two blocks considered, resulting: in numbers each representative of the graphic variations between these two blocks considered;
  • PSNR Peak Signal to Noise Ratio
  • the step of determining the first blocks and the second blocks can further comprise a step of constructing a graph comprising nodes interconnected along rows and columns, the quantified graph differences being assigned to a cost of moving along a row between two nodes and a cost being assigned to displacements according to a column; and a step of determining a path of lowest cost in this graph, each start of path at the level of a column being associated with one of the first blocks and each displacement according to a column being associated with one of the second blocks, the lowest cost being equal to a sum of travel costs each between two nodes on the same line and of travel costs each between two nodes on the same column, the path being made up of travel each between two nodes on the same line and displacements each between two nodes on the same column;
  • the path determination step can implement a Dijkstra algorithm
  • the method may further comprise a step of compressing the information representative of the meshes comprising the steps of compressing the information representative of the meshes by quantification; compress the information representative of the quantized meshes according to a compression method which comprises the steps of compressing information representative of triangles of the meshes of the keyframes according to the Edgebreaker algorithm; compress information representing points of the meshes of the keyframes according to a prediction algorithm; compress information representative of texture coordinates of the keyframes according to a linear selective prediction algorithm; and compress information representative of points of the meshes of the inter-frames by differential coding; and compressing, by means of an entropy calculation algorithm, the compressed information representing said points of the meshes, of the said triangles and of the said texture coordinates of the keyframes as well as the information representative of the points of the meshes of the interframes,
  • the invention may extend to:
  • a computer program comprising instructions which, when the program is executed by a computer, lead it to implement the steps of the method
  • a computer-readable medium comprising instructions which, when executed by a computer, lead it to implement the steps of the method.
  • FIG. 1A illustrates a videogrammetry studio comprising cameras
  • FIG. 1B is a diagram of the system for capturing images and processing data from the cameras of FIG. 1A
  • FIG. 1C is a diagram of a process for producing volumetric videos of a scene
  • FIG. 1D illustrates a cloud of points as defined in the method of FIG. 1C
  • FIG. 1E illustrates a mesh corresponding to the point cloud of FIG. 1D
  • FIG. 2A illustrates a succession of frames
  • FIG. 2B illustrates a distribution of the frames of FIG.
  • Figure 2C illustrates a texture
  • the 2D figure illustrates a complete texture for a keyframe
  • FIG. 3A is a diagram of the process according to the invention
  • Figure 3B is. a diagram of a particular step of the process according to the invention
  • FIG. 4A is a table of error values
  • FIG. 4B is a graph constructed from the table in FIG. 4A
  • FIG. 5A is a particular case of the graph of FIG. 4B after processing according to the invention
  • Figure 5B is a table summarizing the results of Figure 5A
  • FIG. 5C illustrates the uncompressed and compressed textures of a succession of frames
  • FIG. 6 is a diagram illustrating the decompression of a compressed volumetric video data stream according to the invention.
  • a volumetric action scene that is to say a scene taking place in time and in the three directions of space
  • the scene is acted out by 105 actors in a 100 videogrammetry studio with a green screen.
  • Such a studio is composed of a structure 110 surrounding a plate 120 and which has the function of supporting a set of cameras 130 observing the scene 125 from a variety of viewpoints
  • the cameras 130 are connected to a system 140 of storage and data processing, as well as a user interface 150.
  • a method of producing volumetric video using studio 100 includes the following steps in block diagram 155 of Figure 1C.
  • the cameras capture the scene in a synchronized manner, for example at a frequency comprised between 30 and 60 images per second, each according to its own point of view, which makes it possible to reconstruct the scene as a whole.
  • the images captured by the cameras are optionally processed for calibration, to correct biases or other errors, and to subtract the background therefrom, according to conventional methods.
  • these reprocessed images feed an algorithm known to those skilled in the art, implemented by the data processing system 140 so as to produce point clouds C as illustrated by FIG. 1D, representative of the objects constituting the scene, by establishing depth maps of the visible surfaces of these objects according to the principle of stereography, by comparing images of the same physical surface captured by different cameras according to different viewing angles.
  • a mesh M as illustrated in FIG. 1E is generated from the point clouds obtained, and a texture intended to be mapped onto it, according to conventional methods, such as by reconstruction of Poisson surfaces and use of UVAtlas source code, copyright ® Microsoft Corporation, respectively for each frame, independently from frame to frame.
  • the scene is represented by a succession of frames F, each frame being associated on the one hand with information representative of a respective texture T, and on the other hand with information representative of a respective mesh M, independently from one frame to another.
  • FIG. 2A illustrates 5 frames F1 to F5 in succession, each associated respectively with a mesh M1 to M5 and with a texture T1 to T5.
  • Each mesh is made up of a set of points linked together by triangles , recreating the surface of the objects in the scene , and each triangle is associated with texture coordinates using a texture coordinate table in order to be able to properly map the texture onto the triangles.
  • the triangles are used as elementary surfaces decomposing the surfaces of the objects as seen by the cameras.
  • a step 168 of geometric and photometric tracking is implemented in order to distribute the frames F into groups of frames FGr each comprising a key frame KF and a plurality of inter-frames IF.
  • FIG. 2B illustrates 18 frames F1 to F18 divided into three groups of frames FGr1 to FGr3 each comprising a key frame KF and inter-frames IF in variable number according to the groups, frames obtained in a flow 172 in output step 170 .
  • a reference mesh is associated with each keyframe
  • the meshes of the inter-frames are defined by deformation of the reference meshes, that is to say by means of information representative of deformations of the meshes associated with the corresponding keyframes
  • a texture is associated with each frame.
  • Each texture can be represented by an image comprising patches on a uniform background, as illustrated by FIG. 2C.
  • the information representative of the meshes consists, in the case of the keyframes, of information representative of the points of the mesh, i.e. of the location data of these points in a three-dimensional space; into information representative of the triangles of the mesh, i.e. surface data each comprised between 3 of the points of the mesh; and in information representative of. textures associated with respective mesh triangles, i.e. texture coordinate data.
  • each frame is associated with a texture specific to it within a stream 172 of video data comprising texture data T and mesh data M, each texture being a digital image.
  • a test step 301 it is determined whether the incoming data is mesh data M or texture data T.
  • block compression is applied to each texture associated with a frame of the stream of frames, the textures being retrieved from the texture data T, so that the texture of each frame is associated with a set of blocks.
  • Block compression is a conventional method of compression that reduces the amount of memory required for store color data, in which blocks of pixels (such as 4 pixel by 4 pixel or 8 pixel by 8 pixel squares) are compressed considering that the variations within the same block are very small, according to standard algorithms such as DXT, ASTC or PVRTC.
  • block refers to blocks obtained by an algorithm of the type mentioned in the previous paragraph and which are directly exploitable by a conventional graphics processing unit, or GPU, i.e. without requiring decompression or other treatment.
  • the "blocks” as considered in the method according to the invention are distinct from the “blocks” used in compression methods such as those of JPEG and MPEG coding which are of the AVC (Advanced Video Coding) type mentioned above in the “Prior Technique” section.
  • the blocks used in AVC type processes result directly from a cutting of an image and are therefore each a group of pixels.
  • a characteristic of the blocks of AVC-type methods is that they are usually not considered to be directly exploitable by a graphics processing unit, unlike the blocks of the method according to the invention.
  • block compression according to the invention results in data that can be decoded directly by conventional graphics processing units.
  • this feature represents a decisive advantage by reducing the amount of data to be transferred and the computational cost of decompressing the transferred data.
  • a strong advantage of the method according to the invention compared to conventional methods is thus to take advantage of the ability of GPUs to perform decompression operations at block level to facilitate the processing of the video streams obtained.
  • block compression within the meaning of the invention is particularly suited to the compression of textures, in particular of the atlas type, and much more suitable than image compression as used in JPEG and MPEG coding.
  • the blocks directly interpretable by a GPU as considered in this invention present a difficulty in their compression due to the fact that it is not possible to modify a block by a difference.
  • a texture reduction method is applied during a step 304, according to the following original method called reduction by partial texture.
  • one chooses, among blocks associated with the key frame and blocks associated with the inter-frames of a group of frames, on the one hand a set (210) of first blocks capable of forming a composite texture of the keyframe, and on the other hand a set (220) of second blocks able to modify by iterative replacements the composite texture of the keyframe so as to form approximate textures of the inter-frames.
  • the only encoded blocks are those which provide signif icantly new information.
  • This feature allows a considerable reduction in the volume of texture data to be encoded during compression, then to be transmitted and decoded when viewing the video online.
  • Blocks encoded for interframes are used to modify the composite texture of the keyframe by iteration with each new frame, when necessary to maintain acceptable visual quality.
  • FIG. 2D illustrates this situation, with a complete texture of a keyframe, complete texture formed by a set 210 of 256 blocks, and a set 220 of 92 blocks forming a partial texture of an interframe corresponding to this keyframe, the missing blocks being considered sufficiently close to those of the keyframe not to have to be encoded again.
  • blocks already encoded are used which are graphically close to these non-encoded blocks, as long as the degradation in terms of visual quality remains acceptable.
  • the blocks already encoded are either those of the key frame, or blocks of a partial texture that have already come to replace those of the key frame, so that one obtains textures approximate to the textures of the inter-frames. by modifying the texture of the keyframe by successive iterations.
  • the frame stream data consists of groups of frames, each group comprising a keyframe followed by interframes, in temporal succession.
  • the textures associated with the frames of the same group naturally resemble each other, as a consequence of the very definition of the groups by geometric and photometric tracking, and therefore have a large number of blocks in common that it is not necessary to redistribute. encode multiple times, the initial encoding of a reconstituted texture for the keyframe and certain blocks chosen for interframes being sufficient.
  • the issue of the. reduction by partial texture is to determine which blocks are to be used for the keyframe texture and which blocks need updating within each group of frames, in such a way as to minimize the number of blocks to encode while , maintaining acceptable visual quality of the final video .
  • the graphic differences of the blocks of each frame relative to each other are evaluated, either from block to block directly, or from block to an uncompressed texture. corresponding to a block, as described, below.
  • Nf different blocks B1 to BNf follow one another at the same position respectively during the frames F1 to FNf and can be considered as the temporal variants of a given block during the Nf frames F1 to FNf considered.
  • FIG. 5C representing a group of a sequence of Nf frames each associated with an uncompressed texture Tnc and with a compressed texture Tc, the blocks 131 to BNf corresponding to the same position Pos in the compressed textures respective Tc and to images (or sets of pixels) I1 to INf corresponding to this same position in the respective uncompressed textures Tnc.
  • the blocks B1 to BnF and the images I1 to INf consist of sets of pixels of the same position, of the same geometry and of the same dimension.
  • PSNR Peak Signal to Noise Ratio
  • a PSNR is calculated between the blocks B1 to BNf of the respective frames F1 to FNf and the images I1 to INf of the same position of the uncompressed textures of the corresponding frames of the same group, which gives us gives NfxNf PSNR calculations to perform.
  • the PSNRs constitute an indication of the resemblance between two images, here a first image which is that of a block defined during the step of compression by block and a second image which is that constituted by a group of pixels corresponding to the block in an uncompressed image.
  • the PSNR is expressed on a logarithmic scale and a large value of PSNR is indicative of a strong resemblance between two images.
  • a step 304-3 consists in constructing, for each block position in a group of Nf frames, a square table 400 comprising NfxNf entries, each consisting of one of the error values ErrVal calculated in step 304-2.
  • Each row of the table 400 is dedicated to the evaluations of the temporal variations of a given position block over the course of Nf frames F1 to FNf, referring here to the images I1 to INf corresponding to the blocks in the corresponding uncompressed textures.
  • Each column of the table 400 is dedicated to a frame, the frames being classified in their order of appearance in the volumetric video stream and being identified F1 to FN.
  • the table entries are filled in by inserting therein the error values ErrVal calculated in step 304-2 in the following manner.
  • An entry of coordinates (p;q) of the p-th row and the q-th column of the table 400 corresponds to an error value ErrVal (Bp/Iq) calculated between a p-th block at a given position of compressed texture of the p-th frame and an image Iq of a set of pixels at this given position of the uncompressed texture at the q-th frame Fq, and translates the graphical difference amplitude between this p-th block and this set of pixels.
  • the second entry in the first row of the table corresponds to an error value ErrVal (B1/I2) calculated between the first block B1 at the first frame F1 and the set of pixels 12 corresponding to it. block in the uncompressed texture in the second frame F2 before block compression, and translates the amplitude of graphic difference between this first block B1 and this set of corresponding pixels 12.
  • the diagonal entries (B1;F1) to (BNf/FNf) of the table translate the amplitude of the graphic difference between a block and the corresponding group of pixels of the uncompressed texture of the same frame, indicating the degradation of video image quality introduced by the block compression step.
  • a possible approach defined by the inventors to minimize the quantity of data to be encoded then to be decoded during the reading of a video stream consists in minimizing the number of blocks to be encoded by making a choice among the blocks by means of the table 400 which indicates the errors introduced by the block compression of step 302, not only within a frame, but also between the frames of the same group for a given position of blocks.
  • the choice amounts to determining within the table a path having the lowest possible cost to go from any entry of the first column to the left of the table corresponding to the first frame of the group considered to any entry of the last column at line corresponding to the last frame of the group considered, by moving either to the right or vertically (up or down), by introducing a cost for each horizontal displacement, a cost for each vertical displacement, and by seeking to minimize the overall cost induced by the path followed.
  • One way of optimizing the path is to assign a first cost to the degradation of visual quality induced by the reuse of the same block to encode the images of several frames , a second cost to the intensity of the calculation , corresponding to increasing the amount of data to be encoded, then determining the minimizing path, the overall cost representing the sum of the first cost and the second cost.
  • the optimal path can be determined by classical methods of graph theory, passing for example by the graph 450 of FIG. 4B constructed from the table 400, this graph being made up of nodes and possible displacements between these nodes, by determining the path according to parameters, here the costs mentioned above, defined by the practitioner according to his objectives and his priorities.
  • the central nodes of the graph 450 are identified by U p, q and correspond to the entries of the p-th column and the q-th row of the table 400 .
  • a node U p , q of the graph corresponds to the use of a block of the block position considered in the texture of the p th frame to encode the texture of the q th frame.
  • the nodes are arranged in the same way as the table entries, in Nf rows and Nf columns, a fictitious starting node Ud being connected along rows to each of the nodes corresponding to the entries ErrVal (Bl/Il) to ErrVal (BFn/ II) of the first column of the table, with in this example the number of frames Nf equal to 4 .
  • each ellipse represents a node and each arrow represents a possible displacement between two nodes.
  • the possible movements in the graph are horizontal, within the same row, or vertical, within the same column.
  • the possible horizontal displacements are from a given node to the node immediately adjacent to its right , as represented by the arrows in solid lines of the graph 400, for an August of visual degradation considered as corresponding to the value ErrVal of the entry of the table corresponding to the end node of the displacement considered.
  • the possible vertical displacements are made between two nodes located one above the other, immediately adjacent or not, as represented by the arrows in dotted lines, for a computation cost Ccalc defined by the user.
  • the optimal path sought can be determined by, among other conventional methods, the implementation of Dijkstra's algorithm, generally used to determine the shortest path between two points of a graph made up of a plurality of interconnected nodes, which is the case of the graph 450.
  • the optimal path the one having the lowest overall cost, is considered as the one allowing a minimization of the volume of data to be encoded compatible with an acceptable video quality.
  • the video quality is determined by the practitioner by choosing the Ccalc cost according to criteria depending on his priorities, a high Ccalc cost favoring a high compression rate, a low Ccalc cost inducing a high visual quality, an intermediate Ccalc cost leading to a compromise between compression ratio and visual quality.
  • the cost Ccalc is preferably of the order of 0.0001, for example between 0.00001 and 0.001, or could for example be initialized to an average value of the error value ErrVal.
  • FIG. 5A illustrates an application of the graph 450 to the particular case of a group of 5 frames for a given block position, with an optimal path Popt passing through the nodes U 2.1 , U 2.3 , U 4.3 and U 4.5, thus including a change of lines between the nodes U 2.3 and U 4.3 .
  • the B2 block of the second frame is encoded and used for the first and second F1 and F2 frames when encoding the video, i.e. for the composite texture of the keyframe and the first interframe.
  • This block B2 does not have to be re-encoded for the second frame since it has already been re-encoded for the first.
  • Block B4 of the fourth frame is encoded and replaces block B2 for frames 3 and following F3, F4 and F5.
  • Block B4 is encoded only once but is used for 3 frames.
  • Step 304 as described above only applies to a given block position within the textures of the interframes of each frame group.
  • This step 304 is therefore repeated to be applied at each block position to determine which blocks to use to encode the textures as a whole, as indicated by the L loop in diagram 300.
  • a frame is a KF key frame or an IF inter-frame.
  • all of the blocks necessary for encoding the complete texture associated with a keyframe are retrieved and as determined at step 304 for each block position, so that forms a composite texture for this keyframe, and a conventional compression method is applied to this composite texture, such as an entropic compression method, for example by Huffman coding.
  • a complete composite texture is encoded using blocks of different textures associated with respective frames of the group of frames of the key frame considered, as described above.
  • This point represents a first difference from conventional texture encoding methods, in which the texture associated with a keyframe is. encoded exclusively with the blocks resulting from its compression, by block, independently of the textures of the close frames.
  • the blocks newly encoded for this inter-frame as determined at step 304 are retrieved for each inter-frame.
  • each frame is associated with a mesh specific to it within a stream 172 of volumetric video data comprising texture data T and mesh data M, with a reference mesh associated with each keyframe and. information relating to the modifications of the reference mesh for each inter-frame in a given group of frames.
  • One step. 301 of test it is determined whether the incoming data are mesh data M or texture data T.
  • a conventional method of compression by quantification is applied to each mesh retrieved from the mesh data M, consisting in discretizing the coordinates of the defining points, the mesh as well as the coordinates of the textures associated with a subset of values, for a reduction of the occupied memory.
  • a given quantized mesh is associated with a keyframe or with an interframe.
  • a compression method is applied to the information representative of the meshes of the key frames, comprising the sub-steps 354-1, 354-2 and 354-3, each adapted to a particular type of data which, considered in together, define the meshes of the keyframes.
  • the information representative of the keyframe triangles is compressed using an algorithm known as “Edgebreaker”, known for example from J. Rossignac, “Edgebreaker;
  • the information representative of the points, or vertices, of the key frames is compressed using a prediction algorithm according to known methods, as explained for example in the reference C. Touma and C. Gotsman, Triangle Mesh Compression, Proceedings Graphics Interface 98, p. 26-34,1998.
  • the information representative of the texture coordinates of the triangles of the keyframes is compressed by a linear selective prediction algorithm, as for example described by Isenburg, M, and Snoeyink, J. in “Compressing texture coordinates with selective linear predictions”, Proceedings of Computer Graphics International’ 2003.
  • This so-called linear selective prediction algorithm encodes the coordinates of textures by point (vertex) whereas they are usually encoded by triangle, which reduces their number and allows better compression as well as optimization of calculations during decoding .
  • a method of compression by differential coding is applied to the information representative of the points, or vertices, of the inter-frames.
  • the triangles and texture coordinates of the interframes are the same as those of the corresponding keyframe, their differences are therefore zero within each group of frames, and this information is not do not have to be re-encoded.
  • Differential coding also called delta compression or delta encoding
  • delta compression is a lossless data compression technique consisting of transforming data by the series of differences between successive data, a particularly effective technique in the present case.
  • step 358 the information compressed during steps 354-1 to 354-3 and 356 is compressed again, this time by means of an entropy calculation algorithm.
  • FSE Finite State Entropy
  • steps 354-1 to 354-3, 356 and 358 are, taken individually, already known to those skilled in the art, their combination as described here is new and leads to results superior to known combinations. of methods conventional with a view to obtaining a compressed video stream suitable for viewing online.
  • the video data relating to the meshes can, when they are compressed according to the invention, easily be decoded in real time by conventional computing systems.
  • step 360 the data streams resulting from steps 308, 310 and 358 are combined into a video file capable of being decoded in streaming for viewing via a computer network.
  • the information representative of the frames is sent via a computer network and decoded sequentially, as it arrives at the computer system of the user in the form of a stream 602 of compressed data, according to the diagram in FIG. 6.
  • the data representative of each frame arrive sequentially according to the order of their respective frames in the video stream and are decoded in this order, the texture data T and the mesh data M being separated.
  • the frames include the keyframes and the interframes identified respectively by KF and IF in the figure and represent the pieces of information to be decoded, M and T for the information representative of the meshes and the textures, respectively.
  • the data representative of the meshes and the textures are respectively identified to be decoded separately thereafter.
  • a step 61.0 the data representative of the textures T are subjected to entropic decoding.
  • step 612 the data decoded from step 610 and corresponding respectively to the key frames KF and to the inter-frames IF are identified.
  • the data representative of the textures of the KF keyframes does not require additional processing, because although still in a compressed format, it is the block compression of step 302, the products of which can be directly processed by conventional graphics processing units.
  • the data representative of the textures of the inter-frames IF which depend on the data of the other frames, are processed in such a way as to resume the data of the previous frame and to modify them by replacing those therein. among the blocks for which a new blou has been encoded following step 310 by the corresponding new block.
  • the data representative of the meshes M are first subjected to a decoding of the entropic encoding by FSE, which is carried out according to conventional algorithms of very fast execution.
  • the data corresponding respectively to the key frames KF and to the inter-frames IF are identified.
  • the data M representative of the meshes of the key frames KF obtained following the steps 354-1, 354-2 and 354-3 are decoded independently of the data of the other frames according to conventional methods, fast with regard to the types of compression used (prediction or Edgebreaker) for this data.
  • step 626 the data representative of the meshes M of the interframes IF obtained following step 354, and which depend on the data already decoded of the key frames KF on which they respectively depend, are decoded according to conventional methods, very fast since it is only a delta compression on the positions of the vertices.
  • step 628 the de-quantification of the mesh data resulting from the steps 624 and 626 is carried out, according to conventional methods.
  • the data obtained following the operations 610, 614 and 628 are processed by a data processing unit and/or a graphics processing unit in a conventional manner in order to proceed with the display 630 of the video.
  • the weight of the data as well as the speed of decoding have been significantly improved, the decoding being able to be implemented by conventional calculation units.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Procédé (300} de compression d'un flux (172) vidéo volumétrique comprenant une pluralité de trames associées chacune à un maillage et une texture et définit des groupes de trames comprenant chacun une trame-clef et des inter-trames dont les maillages sont définis par rapport au maillage de la trame-clef correspondante, le procédé comprenant une étape de compression des informations représentatives des textures qui comprend, pour chaque groupe de trames, les étapes de compresser (302) par bloc les informations représentatives des textures de chacune des trames, définissant ainsi des blocs de pixels; déterminer (304) des premiers blocs aptes à former une texture composite de la trame-clef et des deuxièmes blocs aptes à modifier par remplacements itératifs cette texture composite de manière à former des textures approchées des inter-trames; et encoder (310) les textures des inter-trames sur la base de la texture composite de la trame-clef et des deuxièmes blocs.

Description

Description
TITRE : Procédé et dispositif de compression de données représentatives d ’ une scène tridimensionnelle volumétrique en vue d' une décompression en temps réel pour un visionnage en ligne .
Domaine technique
L ' invention concerne un procédé et un dispositif de compression de données représentatives d ' une scène tridimensionnelle volumétrique en vue d' un décodage en temps réel pour un visionnage en ligne d' une vidéo volumétrique par un utilisateur f inal .
Technique antérieure
L' invention a pour but de compresser des données vo 1 umé triques , qui sont représentatives de scènes tridimensionnelles , en vue d' un visionnage "en ligne" par un utilisateur f inal .
Un procédé visant cet obj ectif est décrit dans l ' article "High-quality streamable free -viewpoint video" , ACM
Trans . Graphics (SIGGRAPR) , 34 (4 ) , 2015 .
Selon ce procédé , les données volumétriques sont obtenues à partir de la capture d ' une scène t ri dimens i onne lle par photogrammétrie , c ' est-à-dire au moyen d' un ensemble de caméras , constitué de 106 caméras dans ce cas , capturant chacune une image de la scène sous un angle particulier à une fréquence de l ' ordre de 30 à 60 images prises par seconde .
Ces images sont, utilisées pour recréer l ' action de la scène par calcul d' un nuage de points pour chaque instant de capture de la scène , ou trame .
Ces nuages de points sont représentatifs des surfaces , vues par les caméras , des éléments de la scène , et servent de base à la modélisation de la scène par un maillage de triangles reliés continûment les uns aux autres, sur lesquels une texture est. plaquée, indépendamment pour chaque trame dans un premier temps.
A cette étape, le nombre de triangles employés et leurs connectivités sont différentes pour chaque trame.
Dans un deuxième temps, afin de favoriser la compression des données résultantes, un tracking géométrique du maillage est opéré dans le temps, consistant à approcher des maillages constitutifs des trames par déformation d'un maillage de référence appartenant à une trame dite « trame-clef » ou « keyframe », de sorte que les maillages des trames suivantes ont le même nombre de triangles et les mêmes connectivités que ce maillage de référence.
Lorsqu'il n’est pas possible d'approcher de façon acceptable un maillage par déformation du maillage de la trame de référence, un nouveau maillage est défini pour une nouvelle trame de référence, et l'opération est répétée jusqu'à avoir traité les maillages de l'ensemble des trames.
Les trames dont le maillage est défini sur la base du maillage d'une trame-clef, situées entre deux trames-clefs, sont dites « inter-trames » ou « interf rames ».
La compression des données concernant le maillage bénéficie des redondances temporelles entre les trames voisines dont le maillage est basé sur celui d'une même trame-clef.
Un maillage d'une trame-clef est encodé entièrement, alors que seules les variations de maillage sont encodées pour les inter- trames , ce qui est plus économique en termes de volume de données résultantes et. d’ intensité de calcul pour leurs décodages que l’encodage et le décodage complets des maillages de chaque trame .
Cependant, l’encodage des données de maillage peut encore être amélioré.
En ce qui concerne les textures plaquées sur les maillages, à chaque trame correspond un atlas complet de textures qui devra être encodé puis décodé entièrement lors de la compression et la décompression, respectivement, selon le principe des normes de compression MPEG et H.264.
Le traitement et la transmission des données de ces atlas de textures représentent un août de calcul et en bande passante importants, qu'il est souhaitable de réduire.
En outre, les méthodes employées ont été à l'origine développées dans le but de créer des vidéos avec des images « classiques » telles que celles d'un film, et non avec des textures qui sont des images composées de patches sur un fond uni. üne méthode plus appropriée pour compresser des atlas de textures est requise.
Dans le domaine de la compression audio/vidéo, on connaît les documents suivants :
" [V-PCC] [EE2.6-related] Proposition of an anchor and a test model for coding animated meshes" , by Jean-Eudes Marvie et al., 132. MPEG MEETING; 20201012 - 20201016; ONLINE; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11) , no. m55327, 5 octobre 2020 (2020-10-05) , XP030292836,-
- "Mesh Coding Extensions to MPEG-I V-PCC", by Faramarzi
Esmaeil et al. , 2020 IEEE 22ND INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING (MMSP) , [Online ] , 21 septembre 2020 (2020-09-21) , pages 1-5, XP055837185; et
- - "Real-time compression and streaming of 4D performances", by Tang Danhang et al., ACM TRANSACTIONS ON GRAPHICS, ACM, NY, US, vol. 37, no. 6, 4 décembre 2018 (2018-12-04) , pages 1-11, XP058464802.
Ces documents traitent de precedes de compression qui sont typiquement des procédés de type AVC (Advanced Video Coding) tels que le MPEG, JPEG, le HEVC (High Efficient Video Coding) , ou le h .264.
La compression temporelle vidéo de ce type de procédés repose, dans cet ordre, sur la définition de blocs par découpe d'une image, la comparaison entre blocs de deux trames adj acentes , puis l ' encodage/compression d' une différence entre deux blocs ; au cours du décodage , cette dif férence est appliquée individuellement à chaque pixel .
Les procédés de ce type ont pour but de fournir un débit de transmission le plus faible possible sur un réseau informatique , sans considération pour le transfert des images entre le processeur et la carte graphique d' un ordinateur traitant ces flux de données d' images , ou pour l ' occupation de la mémoire de la carte graphique .
Ainsi , ce type de procédé ne répond pas à la problématique traité par la présente demande de brevet .
Figure imgf000006_0001
L ' invention a pour obj ectif d' améliorer d' une part. la compression des informations portant sur les maillages des trames d' un flux vidéo volumétrique , et d' autre part sur les informations portant sur les textures associées à ces mêmes trames .
L ' invention porte plus particulièrement sur un procédé de compression d' un f lux vidéo volumétrique d' une scène d' action tridimensionnelle représentée par une pluralité de trames , le procédé étant mis en œuvre par ordinateur, et selon lequel on génère un maillage et une texture pour chaque trame de la scène et on définit des groupes de trames comprenant chacun une trame -clef et des inter-trames dont les maillages sont définis par rapport au maillage de la trame-clef correspondante , le procédé comprenant une étape de compression des informations représentatives des textures , l ' étape de compression de texture comprenant , pour chaque groupe de trames , les étapes de compresser les informations représentatives des textures de chacune des trames du groupe selon une méthode de compression par blocs apte à former des blocs directement exploitables par une unité de traitement graphique conventionnelle selon des algorithmes standards tels que DXT, ASTC ou PVRTC , définissant ainsi des blocs de pixels directement exploitables par une unité de traitement graphique conventionnelle , et comprenant des blocs associés à la trame-clef et des blocs associés respectivement à chacune des inter- trame ; déterminer, à partir des blocs associés à la trame-clef et des blocs associés aux inter- trames , d' une part des premiers blocs aptes à former une texture composite de la trame-clef , et d' autre part des deuxiemes blocs aptes à modifier par remplacements itératifs de blocs la texture composite de la trame-clef de manière à former des textures approchées des inter- trames ; former une texture composite de la trame-clef du groupe de trames à partir de premiers blocs associés à la trame-clef et de premiers blocs associés aux inter- trames , et encoder cette texture composite ; et encoder les textures des inter- trames sur la base de la texture composite de la trame-clef et des deuxièmes blocs .
La compression des informations représentatives des textures selon l ' invention met en particulier à profit la correspondance temporelle qui existe entre les textures des trames successives formant un flux vidéo volumétrique , évitant le codage , la transmission, puis le décodage d' informations redondantes .
La décompression du flux vidéo encodé au moyen de procédé de compression selon l ' invention a un faible coût en calcul et le niveau de compression peut être aisément choisi au moyen d' un simple paramétre , permettant d' adapter le compromis entre le niveau de compression et la facilité à décompresser aux besoins de l ' usager et donc d' obtenir un f lux vidéo volumétrique particulièrement apte à une lecture en ligne en temps réel .
Le procédé de compression d' un flux vidéo volumétrique selon l ' invention peut présenter les caractéristiques suivantes :
- les étapes d' encodage des textures composites des trames - clefs et des textures des inter-trames peuvent comprendre une compression par codage entropique ; l ’ étape de détermination des premiers blocs et des deuxièmes blocs peut comprendre une étape d' évaluation de différences graphiques quantif iées des blocs d' un groupe de trames d' une position donnée les uns par rapport aux autres , cette étape d' évaluation reposant sur des calculs tel s que des calculs de PSNR (Peak Signal to Noise Ratio) entre deux blocs considérés , resultant: en des nombres chacun représentatifs des variations graphiques entre ces deux blocs considérés ;
- pour chacun des blocs du groupe de trames , les dif férences graphiques sont évaluées vis-à-vis de l ' ensemble des autres blocs du groupe de trames ;
- l ' étape de détermination des premiers blocs et des deuxièmes blocs peut comprendre en outre une étape de construire un graphe comprenant des nœuds interconnectés selon des lignes et des colonnes , les différences graphiques quantifiées étant af fectées à un coût de déplacement selon une ligne entre deux nœuds et un coût étant affecté aux déplacements selon une colonne ; et une étape de déterminer d' un chemin de coût le plus bas dans ce graphe , chaque début de chemin au niveau d' une colonne étant associé à l ' un des premiers blocs et chaque déplacement selon une colonne étant associé à l ' un des deuxièmes blocs , le coût le plus bas valant une somme de coûts de déplacements chacun entre deux nœuds sur une même ligne et de coûts de déplacements chacun entre deux nœuds sur une même colonne , le chemin étant constitué des déplacements chacun entre deux nœuds sur une même ligne et des déplacements chacun entre deux nœuds sur une même colonne ;
- l ' étape de détermination d' un chemin peut mettre en œuvre un algorithme de Dijkstra ;
- le procédé peut comprendre en outre une étape de compression des informations représentatives des maillages comprenant les étapes de compresser les informations représentatives des maillages par quantification ; compresser les informations représentatives des maillages quantifiées selon une méthode de compression qui comprend les étapes de compresser des informations représentatives de triangles des maillages des trames -clef s selon l ' algorithme Edgebreaker ; compresser des informations représentatives de points des maillages des trames-clefs selon un algorithme de prédiction ; compresser des informations représentatives de coordonnées de texture des trames-clefs selon un algorithme de prédiction sélective linéaire ; et compresser des informations représentatives de points des maillages des inter-trames par codage différentiel ; et compresser, au moyen d' un algorithme de calcul d' entropie , les informations compressées représentatives desdits points des maillages , desdits triangles et desdites coordonnées de texture des trames-clefs ainsi que les informations représentatives des points des maillages des inter- trames ,
L ' invention peut s ' étendre à :
- un système de traitement, de données comprenant des moyens de mettre en œuvre les étapes du procédé ;
- un programme d ' ordinateur comprenant des instructions qui , lorsque le programme est exécuté par un ordinateur, conduisent celui- ci à mettre en œuvre les étapes du procédé ; et
- un support lisible par ordinateur comprenant des instructions qui , lorsqu ' elles sont exécutées par un ordinateur , conduisent celui- ci à mettre en œuvre les étapes du procédé .
Brève description des dessins
La présente invention sera mieux comprise et d ’ autres avantages apparaîtront à la lecture de la description détaillée du mode de réalisation pris à titre d ' exemple nullement limitatif e.t illustré par les dessins annexés , dans lesquels : la figure 1A illustre un studio de vidéogrammétrie comportant des caméras ; la figure 1B est un schéma du système de capture d' images et de traitement de données des caméras de la f igure 1A ; la figure 1C est un diagramme d' un procédé de productions de vidéos volumétriques d’ une scène ; la figure 1D illustre un nuage de points tels que définis dans le procédé de la figure 1C ; la figure 1E illustre un maillage correspondant au nuage de points de la f igure 1D ; la figure 2A illustre une succession de trames ; la figure 2B illustre une répartition des trames de la figures
2A en groupes ; la figure 2C illustre une texture ; la f igure 2D illustre une texture complète pour une trame-clef
(a) et une texture partielle pour une inter- trame (b) , selon l ' invention ; la figure 3A est un diagramme du procédé selon l ' invention ; la figure 3 B est. un diagramme d' une étape particulière du procédé selon l ' invention ; la figure 4A est un tableau de valeurs d' erreurs ; la figure 4B est un graphe construit à partir du tableau de la figure 4 A ; la figure 5A est un cas particulier du graphe de la figure 4B après traitement selon l ' invention ; la figure 5B est un tableau résumant les résultats de la figure 5 A ; la figure 5C illustre les textures non- compressées et compressées d' une succession de trames ; la figure 6 est un diagramme illustrant la décompression d' un flux de données vidéo volumétrique compressé selon l ' invention .
Description d' un mode particulier de realisation du procède selon l ' invention
Afin de reconstituer une scène d' action volumétrique , c ' est -à- dire une scène se déroulant dans le temps et dans les trois directions de l'espace, la scène est jouée par des acteurs 105 dans un studio 100 de vidéogrammétrie doté d'un fond vert.
Un tel studio est composée d’une structure 110 entourant un plateau 120 et qui a pour fonction de supporter un ensemble de caméras 130 observant la scène 125 selon une variété de points de vue Les caméras 130 sont reliées à un système 140 de stockage et de traitement de données, ainsi qu'à une interface utilisateur 150.
Un procédé de production d'une vidéo volumétrique à l'aide du studio 100 comprend les étapes suivantes du diagramme 155 de la figure 1C.
A une étape 160, les caméras capturent la scène de manière synchronisée, par exemple à une fréquence comprise entre 30 et 60 images par seconde, chacune selon son propre point de vue, ce qui permet de reconstruire la scène dans sa globalité.
A une étape 162, les images capturées par les caméras sont optionnellement traitées pour calibration, pour corriger des biais ou autres erreurs, et pour en soustraire le fond, selon des méthodes conventionnelles .
A une étape 164, ces images retraitées nourrissent un algorithme connu de l'homme du métier, mis en œuvre par le système 140 de traitement de données de manière à produire des nuages de points C tels qu'illustrés par la figure 1D, représentatifs des objets constituant la scène, par établissement de cartes de profondeur des surfaces visibles de ces objets selon le principe de la stéréographie, par comparaison des images d'une même surface physique capturées par différentes caméras selon différents angles de vue.
A une étape 166, on génère un maillage M tel qu'illustré par la figure 1E à partir des nuages de points obtenus, et une texture destinée à être plaquée sur celui-ci, selon des méthodes conventionnelles, comme par reconstruction de surfaces de Poisson et utilisation du code source UVAtlas, copyright ® Microsoft Corporation, respectivement pour chaque trame, indépendamment d'une trame à l ' autre . A ce stade , la scène est représentée par une succession de trames F , chaque trame étant associée d' une part à des informations représentatives d' une texture T respective , et d' autre part à des informations représentatives d' un maillage M respectif , indépendamment d' une trame à l ' autre .
Ainsi , la figure 2A illustre 5 trames F1 à F5 en succession, chacune associée respectivement à un maillage M1 à M5 et à une texture T1 à T5 .
Chaque maillage est constitué d' un ensemble de points reliés entre eux par des triangles , recréant la surface des obj ets de la scène , et chaque triangle est associé à des coordonnées de texture au moyen d' une table de coordonnées de textures afin de pouvoir plaquer correctement la texture sur les triangles .
Les triangles sont employés en tant que surfaces élémentaires décomposant les surfaces des obj ets telles que vues par les caméras .
Un autre type de surface élémentaire, pourrait être employé , mais dans un souci de clarté des explications , nous continuerons d' employer un exemple de mise en œuvre de l ' invention basé sur des triangles . Une étape 168 de tracking géométrique et photométrique est mise en œuvre af in de répartir les trames F en groupes de trames FGr comprenant chacun une trame-clef KF et une pluralité d' inter- trames IF .
Ainsi , la figure 2B illustre 18 trames F1 à F18 réparties en trois groupes de trames FGr1 à FGr3 comprenant chacun une trame- clef KF et des inter- trames IF en nombre variable selon les groupes , trames obtenues en un flux 172 en étape de sortie 170 .
Un maillage de référence est associé à chaque trame-clef , les maillages des inter-trames sont définis par déformation des maillages de référence , c ' est-à-dire au moyen d' informations représentatives de déformations des maillages associés aux trames-clefs correspondantes , et une texture est associée à chaque trame . Chaque texture peut être représentée par une image comportant des patches sur un fond uniforme, comme illustrée par la figure 2C.
Les informations représentatives des maillages consistent, dans le cas des trames-clefs, en des informations représentatives des points du maillage, i.e. des données de localisation de ces points dans un espace tridimensionnel ; en des informations représentatives des triangles du maillage, i.e. des données de surfaces chacune comprises entre 3 des points du maillages ; et en des informations représentatives de. textures associées à des triangles respectifs du maillage, i.e. des données de coordonnées de texture.
Les étapes ci -dessus sont connues de l'homme du métier, exposées par exemple dans la publication "High-quality streamable free- viewpoint video", ACM Trans. Graphics (SIGGRAPH) , 34(4) , 2015.
Les étapes suivantes amènent à une amélioration vis-à-vis des méthodes conventionnelles de compression vidéo volumétrique en ce qui concerne, d'une part, la compression des informations représentatives des textures et, d'autre part, la compression des informations représentatives des maillages, considération étant donnée à une étape ultérieure de décompression, comme détaillé ci-dessous à l'aide des diagrammes 300 et 304 de la figure 3A et 3B, respectivement.
Compression dea textures
A l'issue des étapes précédentes, chaque trame est associée à une texture qui lui est propre au sein d'un flux 172 de données vidéo comprenant des données T de textures et des données M de maillage, chaque texture étant une image numérique .
A une étape 301 de test, on détermine si les données arrivantes sont des données M de maillage ou des données T de texture.
A une étape 302, on applique une compression par bloc à chaque texture associée à une trame du flux de trames, les textures étant récupérées dans les données T de texture, de sorte que la texture de chaque trame est associée à un ensemble de blocs.
La compression par bloc est une méthode conventionnelle de compression permettant de réduire la quantité de mémoire requise pour stocker des données de couleur, dans laquelle des blocs de pixels (tels que des carrés de 4 pixels par 4 pixels ou 8 pixels par 8 pixels) sont compressés en considérant que les variations à l'intérieur d'un même bloc sont très faibles, selon des algorithmes standards tels que DXT, ASTC ou PVRTC .
Dans ce document, le terme « bloc » fait référence à des blocs obtenus par un algorithme du type de ceux mentionnés dans le paragraphe précédent et qui sont directement exploitables par une unité de traitement graphique conventionnelle, ou GPU, c'est-à-dire sans requérir une décompression ou un autre traitement.
Ainsi, les « blocs » tels que considérés dans le procédé selon l'invention sont distincts des « blocs » utilisés dans des procédés de compression tels ceux des codages JPEG et MPEG qui sont de type AVC (Advanced Video Coding) mentionnés ci-dessus dans la section « Technique antérieur » .
En effet, les blocs utilisés dans les procédés de type AVC résultent directement d’une découpe d'une image et sont donc chacun un groupe de pixels.
Leur nature est ainsi différente de celle des blocs du procédé selon l’invention qui sont le résultat d'une opération de compression appliquée à ces pixels, et dont la nature dépendra donc du principe de la compression utilisée pour l'opération de compression, mais ne sera pas celle d'un groupe de pixels.
Une caractéristique des blocs des procédés de type AVC est qu'ils ne sont usuellement pas considérés comme étant directement exploitables par une unité de traitement graphique, à la différence des blocs du procédé selon l’invention.
En effet, la compression par bloc selon l'invention aboutit à des données pouvant être décodées directement par les unités de traitement graphiques conventionnelles.
Lors du décodage, il ne sera donc pas nécessaire pour l'unité centrale de calcul d'une unité de traitement de données, ou CPU, de décompresser les textures compressées par blocs avant de les envoyer à une unité de traitement graphique, ou GPU, ce qui permet de limiter les calculs à effectuer sur le CPU et de réduire fortement la quantité de données à envoyer" au GPU,
Dans le cadre d’une lecture en temps réel d'un flux vidéo volumétrique, cette caractéristique représente un avantage déterminant par réduction de la quantité de données à transférer et du coût en calcul de la décompression des données transférées.
Un avantage fort du procédé selon l'invention par rapport aux méthodes conventionnelles est ainsi de mettre à profit la capacité des GPU à effectuer des opérations de décompression au niveau des blocs pour faciliter le traitement des flux vidéos obtenus.
En outre, la compression par blocs au sens de l'invention est particulièrement adaptée à la compression de textures, notamment de type atlas, et bien plus adéquate qu'une compression d'image telle qu’utilisée en codages JPEG et MPEG.
Cependant les blocs directement interprétables par un GPU comme considérés dans cette invention présentent une difficulté dans leur compression de par le fait qu'il n'est pas possible de modifier un bloc par une différence.
Les techniques classiques reposant sur une compression par différence ne sont donc pas applicables.
Pour chaque groupe de trames, on applique au cours d'une étape 304 une méthode de réduction des textures, selon la méthode originale suivante dite de réduction par texture partielle.
Dans cette étape, on choisit, parmi des blocs associés à la trame-clef et des blocs associés aux inter- trames d'un groupe de trames, d'une part un ensemble (210) de premiers blocs aptes à former une texture composite de la trame-clef, et d'autre part un ensemble (220) de deuxièmes blocs aptes à modifier par remplacements itératifs la texture composite de la trame -clef de manière à former des textures approchées des inter-trames .
Ainsi, au lieu d’encoder en totalité l'ensemble des blocs de chaque texture associée à une trame, on encode en totalité uniquement les blocs d' une texture reconstituée de chaque trame-clef , mais en ce qui concerne les inter- trames , les seuls blocs encodés sont ceux qui apportent, une information signif icativement nouvelle .
Cette caractéristique permet une réduction considérable du volume de données de texture à encoder lors de la compression, puis à transmettre et à décoder lors d' un visionnage en ligne de la vidéo .
Les blocs encodés pour les inter-trames sont utilisés pour modifier la texture composite de la trame clef par itération à chaque nouvelle trame , lorsque nécessaire pour maintenir une qualité visuelle acceptable .
La figure 2D illustre cette situation , avec une texture complète d' une trame-clef , texture complète formée par un ensemble 210 de 256 blocs , et un ensemble 220 de 92 blocs foi'mant une texture partielle d' une inter- trame correspondant à cette trame-clef , les blocs manquant étant considérés comme suf fisamment proche de ceux de la trame-clef pour ne pas avoir à être encodés à nouveau .
A la place des blocs non encodés , on emploie des blocs déj à encodés qui sont graphiquement proches de ces blocs non encodés , tant que la dégradation en terme de qualité visuelle reste acceptable .
Les blocs déj à encodés sont soit ceux de la trame- clef , soit des blocs d' une texture partielle déj à venus en remplacement de ceux de la trame clef , de sorte que l ' on obtient des textures approchées des textures des inter-trames en modifiant la texture de la trame-clef par itérations successives .
Ce principe peut être exploité selon le mode particulier de mise en œuvre détaillé ci -dessous à l ' aide des figures 3B et 4A à 5C .
Les données du f lux de trames consistent en des groupes de trames , chaque groupe comprenant une trame -clef suivie d’ inter- trames , en succession temporelle .
Les textures associées aux trames d' un même groupe se ressemblent naturellement , conséquence de la définition même des groupes par tracking géométrique et photométrique , et ont donc un grand nombre de blocs en commun qu' il n' est pas nécessaire de ré- encoder à de multiples reprises , l ' encodage initial d' une texture reconstituée pour la trame- clef et de certains blocs choisis pour inter- trames étant suffisants .
L ' enj eu de la. réduction par texture partielle est de déterminer quel s blocs sont à utiliser pour la texture de la trame -clef et quels blocs nécessitent une mise à jour au sein de chaque groupe de trames , et ce de manière à minimiser le nombre de blocs à encoder tout, en maintenant acceptable la qualité visuelle de la vidéo finale .
Pour une position de bloc donnée , on évalue au cours d' une sous- étape 304 - 1 les différences graphiques des blocs de chaque trame les uns par rapport aux autres , soit de bloc à bloc directement , soit de bloc à une texture non compressée correspondant à un bloc , comme décrit, ci-dessous .
Si l ’ on considère un groupe d' un nombre Nf de trames , on a potentiellement Nf variantes possibles pour chaque position de bloc de pixels dans l ' image de texture .
En ef fet , Nf blocs dif férents B1 à BNf se succèdent à une même position respectivement au cours des trames F1 à FNf et peuvent être considérées comme les variantes temporelles d' un bloc donné au cours des Nf trames F1 à FNf considérées .
Pour illustration, on se reportera à la figure 5C représentant une groupe d' une séquence de Nf trames chacune associée à une texture non compressée Tnc et à une texture compressée Tc , les blocs 131 à BNf correspondant à une même position Pos dans les textures compressées respective Tc et à des images (ou ensembles de pixels ) I1 à INf correspondant à cette même position dans les textures non compressées respectives Tnc .
Les blocs B1 à BnF et les images I1 à INf sont constitués d' ensembles de pixels de même position, de même géométrie et de même dimension .
Pour évaluer les variations graphiques des blocs entre eux, on utilise communément un PSNR pour Peak Signal to Noise Ratio, utilisé en imagerie numérique pour évaluer la qualité de reconstruction d'une image compressée par rapport à son image originale.
D'autres méthodes d'évaluation des variations graphiques des blocs pourraient être employées, le PSNR ne représentant qu'une possibilité .
Pour une position donnée de bloc des textures compressées Tc, on calcule un PSNR entre les blocs B1 a BNf des trames F1 à FNf respectives et les images I1 à INf de même position des textures non compressées des trames correspondantes du même groupe, ce qui nous donne NfxNf calculs de PSNR à effectuer.
De cette manière, pour chacun des blocs du groupe de trames considéré, les différences graphiques sont évaluées vis-à-vis de l’ensemble des autres blocs du groupe de trames, ainsi que, dans le cas présent, vis-à-vis de l'image non compressée du bloc considéré.
On prend ici pour référence les textures non compressées en vus d'assurer la fidélité de la vidéo encodée aux images originales, mais il serait également possible de calculer les PSNR entre chaque bloc d’une trame donnée et les blocs correspondant des textures compressées des autres trames.
Les PSNR constituent une indication de la ressemblance entre deux images, ici une première image qui est celle d’un bloc défini lors de l'étape de compression par bloc et une deuxième image qui est celle constituée par un groupe de pixels correspondant au bloc dans une image non compressée .
En outre, le PSNR s'exprime sur une échelle logarithmique et une grande valeur de PSNR est indicatrice d’une forte ressemblance entre deux images .
Afin d’exprimer numériquement l'amplitude des différences entre blocs d'une trame à l'autre, donc au cours du temps, sur une échelle linéaire, on calcule au cours d’une étape 304-2 une valeur d'erreur ErrVal valant
Figure imgf000018_0001
pour chacun des NfxNf PSNR calculés à l'étape 304-1. Un étape 304-3 consiste à construire, pour chaque, position de bloc dans un groupe de Nf trames, un tableau 400 carré comportant NfxNf entrées, chacune constituée d’une des valeurs d'erreur ErrVal calculée à l'étape 304-2.
Chaque ligne du tableau 400 est dédiée aux évaluations des variations temporelles d'un bloc de position donnée aux cours de Nf trames F1 à FNf, en se référant ici aux images I1 à INf correspondant aux blocs dans les textures non compressées correspondantes.
Chaque colonne du tableau 400 est dédiée a une trame, les trames étant classées dans leur ordre d'apparition dans le flux vidéo volumétrique et étant identifiées F1 à FN.
Les entrées du tableau sont remplies en y insérant les valeurs d'erreurs ErrVal calculées à l'étape 304-2 de la manière suivante.
Une entrée de coordonnées (p;q) de la p-ième ligne et de la q- ième colonne du tableau 400 correspond à une valeur d'erreur ErrVal (Bp/ Iq) calculée entre un p-ième bloc à une position donnée de texture compressé de la p-ième trame et une image Iq d'un ensemble de pixels à cette position donnée de la texture non compressée à la q- iême trame Fq, et traduit l'amplitude de différence graphique entre ce p-ième bloc et cet ensemble de pixels.
Par exemple, la deuxième entrée de la première ligne du tableau correspond à une valeur d’erreur ErrVal (B1/I2) calculée entre le premier bloc B1 à la première trame F1 et l'ensemble de pixels 12 correspondant à ce. bloc dans la texture non compressée à la deuxième trame F2 avant compression par bloc, et traduit l'amplitude de différence graphique entre ce premier bloc B1 et cet ensemble de pixels correspondant 12.
Les entrées de la diagonale (B1;F1) à (BNf/FNf) du tableau traduisent l'amplitude de la différence graphique entre un bloc et le groupe de pixels correspondant de la texture non compressée d'une même trame, indiquant la dégradation de qualité d'image vidéo introduite par l’étape de compression par bloc. Une démarche possible définie par les inventeurs pour minimiser la quantité de données à encoder puis à décoder lors de la lecture d’ un flux video consiste à minimiser le nombre de blocs a encoder en effectuant un choix parmi les blocs au moyen du tableau 400 qui indique les erreurs introduites par la compression par bloc de l' étape 302 , non seulement au sein d’ une trame , mais également entre les trames d' un même groupe pour une position donnée de blocs .
Le choix revient à déterminer au sein du tableau un chemin ayant un coût le plus bas possible pour aller d’ une entrée quelconque de la première colonne à gauche du tableau correspondant à la première trame du groupe considéré à une entrée quelconque de la dernière colonne à droite correspondant à la dernière trame du groupe considéré , en se déplaçant soit vers la droite soit verticalement (vers le haut ou vers le bas) , en introduisant un coût pour chaque déplacement horizontal , un coût pour chaque déplacement vertical , et en cherchant à minimiser le coût global induit par le chemin suivi .
Lors d' un déplacement horizontal , on choisit comme bloc encodé le bloc situé au point de départ de déplacement à la trame correspondante dite trame antérieure et à conserver ce bloc j usqu' à la trame d’ arrivée du déplacement dite trame postérieure à l ' issue d' une succession de déplacements horizontaux unitaires , sans encoder les blocs intermédiaires dans le f lux vidéo qui sera produit .
Lorsqu' un bloc est utilisé pour encoder des images successives , la qualité visuelle des images encodées a tendance à se dégrader avec leur éloignement temporel de l ' image ayant servi à générer ce bloc .
Ainsi , la valeur d’ erreur ErrVal tend à augmenter avec la longueur du déplacement horizontal .
En conséquence , il est nécessaire de limiter les amplitudes des déplacements horizontaux en imposant des déplacement verticaux, correspondant a l ’ encodage d’ un nouveau bloc plus adapté à l ’ encodage des images des nouvelles trames , ce qui est favorable du point de vue de la qualité visuelle , mais défavorable des points de vue du taux de compression des données , de leur transmission et de leur decompression lors de la visualisation du flux video .
Une manière d' optimiser le chemin est d' affecter un premier coût à la dégradation de la qualité visuelle induite par la réutilisation d' un même bloc pour encoder les images de plusieurs trames , un deuxième coût à l ' intensité du calcul , correspondant à l ' augmentation de la quantité de données à encoder, puis de déterminer le chemin minimisant, le coût global représentant la somme du premier coût et du deuxième coût .
Le chemin optimal peut être déterminé par des méthodes classiques de théorie des graphes , en passant par exemple par le graphe 450 de la figure 4B construit à partir du tableau 400 , ce graphe étant constitué de nœuds et de déplacements possibles entre ces nœuds , en déterminant le chemin en fonction de paramètres , ici les coûts mentionnés plus haut , définis par le praticien selon ses obj ectifs et ses priorités .
Les nœuds centraux du graphe 450 sont identifiés par Up, q et correspondent aux entrées de la p- ième colonne et de la q-ième lignes du tableau 400 .
Un nœud Up,q du graphe correspond à l ' utilisation d ' un bloc de la position de bloc considérée dans la texture de la pième trame pour encoder la texture de la qième trame .
Les nœuds sont disposés de la même manière que les entrées du tableau, en Nf lignes et Nf colonnes , un nœud fictif Ud de départ étant relié selon des lignes à chacun des nœuds correspondant aux entrées ErrVal (Bl/Il) à ErrVal (BFn/Il) de la première colonne du tableau, avec dans cet exemple le nombre de trames Nf valant 4 .
Dans le graphe 450 , chaque ellipse représente un nœud et chaque flèche représente un déplacement possible entre deux nœuds .
Les déplacements possibles dans le graphe sont horizontaux, au sein d' une même ligne , ou verticaux, au sein d' une même colonne .
Les déplacements horizontaux possibles se font d' un nœud donné au nœud immédiatement adj acent à sa droite , comme représenté par les flèches en traits pleins du graphe 400, pour un août de dégradation visuelle considéré comme correspondant à la valeur ErrVal de l'entrée du tableau correspondant au nœud de fin du déplacement considéré.
Les déplacements verticaux possibles se font entre deux nœuds situés l'un au-dessus de l'autre, immédiatement adjacent ou non, comme représenté par les flèches en traits pointillés, pour un coût en calcul Ccalc défini par l'utilisateur.
Ici, le coût pour aller, par exemple, du nœud U1,3 au nœud U1,4 est ErrVal (B1/I4) et le coût pour aller du nœud U1,3 au nœud U3,3 ou au nœud U3, 4 est Ccalc.
La forme du graphe et les règles de déplacement en son sein étant définies, le chemin optimal recherché peut être déterminé par, entre autres méthodes conventionnelles, mise en œuvre de l'algorithme de Dijkstra, généralement utilisé pour déterminer le chemin le plus court entre deux points d'un graphe constitué d'une pluralité de nœuds interconnectés , ce qui est le cas du graphe 450.
Le chemin optimal, celui ayant le coût global le plus faible, est considéré comme celui permettant une minimisation du volume de données à encoder compatible avec une qualité vidéo acceptable.
La qualité vidéo est déterminé par le praticien en choisissant le coût Ccalc selon des critères dépendant de ses priorités, un coût Ccalc élevé favorisant un taux de compression élevé, un coût Ccalc faible induisant une qualité visuelle élevée, un coût Ccalc intermédiaire amenant à un compromis entre le taux de compression et la qualité visuelle.
Pour des opérations conventionnelles de compression, le coût Ccalc est de préférence de l'ordre de 0,0001, par exemple compris entre 0,00001 et 0,001, ou pourrait par exemple être initialisée à une valeur moyenne de la valeur d'erreur ErrVal.
Par exemple, la figure 5A illustre une application du graphe 450 au cas particulier d'un groupe de 5 trames pour une position donnée de bloc., avec un chemin optimal Popt passant par les nœuds U2.1, U2,3, U4,3 et U4,5, incluant donc un changement de lignes entre les nœuds U2,3 et U4,3.
Pour la position donnée de bloc, le bloc B2 de la deuxième trame est encodé et utilisé pour les première et deuxième trames F1 et F2 lors du codage de la vidéo, c'est-à-dire pour la texture composite de la trame-clef et la première inter-trame.
Ce bloc B2 n'a pas à être ré-encodé pour la deuxième trame puisqu'il l'a déjà été pour la première.
Le bloc B4 de la quatrième trame est encodé et remplace le bloc B2 pour les trames 3 et suivantes F3 , F4 et F5.
Le bloc B4 n'est encodé qu'une seule fois mais est utilisé pour 3 trames.
D'un point de vue pratique, le praticien peut s'attendre à devoir traiter des groupes de trames comportant jusqu'à plusieurs dizaines de trames.
L'étape 304 telle que décrite ci-dessus ne s'applique qu'à une position de bloc donnée au sein des textures des inter- trames de chaque groupe de trame .
Cette étape 304 est donc répétée pour être appliquée à chaque position de bloc afin de déterminer les blocs à utiliser pour encoder les textures dans leur ensemble, comme indiqué par la boucle L dans le diagramme 300.
A une étape de test 306, on détermine si une trame est une trame-clef KF ou à une inter-trame IF. A une étape 308, on récupère l ’ ensemble des blocs nécessaires à l'encodage de la texture complète associée à une trame-clef et tels que déterminés a l'étape 304 pour chaque position de bloc, de manière à ce que l’on forme une texture composite pour cette trame-clef, et on applique à cette texture composite une méthode de compression conventionnelle, telle qu'une méthode de compression entropique, par exemple par codage de Huffman.
Ainsi, pour chaque trame- clef, on encode une texture composite complète en utilisant des blocs de différentes textures associées à des trames respectives du groupe de trames de la trame-clef considérée , comme décrit ci -dessus .
Ce point représente une première dif férence par rapport aux méthodes d’ encodage conventionnelles des textures , dans lesquelles la texture associée à une trame- clef est. encodée exclusivement avec les blocs provenant de sa compression, par bloc , indépendamment des textures des trames voisines .
A une étape 310 , on récupère pour chaque inter -trame les blocs nouvellement encodés pour cette inter-trame tels que déterminés à l ' étape 304 .
Ainsi , pour chaque inter- trame ne sera encodée qu' une texture, partielle constituée des blocs devant être encodés pour cette trame et , éventuellement , pour les trames suivantes .
De cette manière , une partie seulement, des blocs de la texture de cette inter- trame est encodée , au lieu d' une texture complète comme pour une trame- clef .
Il est en outre avantageux de compresser les blocs par une méthode de codage entropique conventionnelle avant de les transmettre , éventuellement en streaming au sein d' un flux vidéo .
Ainsi , comme expliqué plus haut et illustré par la figure 2D , on encode en totalité uniquement les blocs d’ une texture reconstituée de chaque trame-clef , mais en ce qui concerne les inter- trames , les seuls blocs encodés sont ceux qui apportent une information significativement nouvelle .
Ces caractéristiques résultent en une amélioration considérable du taux de compression et en une économie de calculs lors de la lecture de la vidée puisque moins de blocs devront être encodés , puis transmis et décodés lors de la lecture du flux vidéo .
Compression des maillages
A l ' issue des étapes précédentes , chaque trame est associée à un maillage qui lui est propre au sein d' un flux 172 de données vidéo volumétrique comprenant des données T de textures et des données M de maillage , avec un maillage de référence associé à chaque trame-clef et. des informations relatives aux modifications du maillage de référence pour chaque inter-trame dans un groupe donné de trames.
A une étape. 301 de test, on détermine si les données arrivantes sont des données M de maillage ou des données T de Texture. A une étape 350, on applique une méthode conventionnelle de compression par quantif ication à chaque maillage récupéré dans les données M de maillage, consistant à discrétiser les coordonnés des points définissant, le maillage ainsi que les coordonnées des textures associées à un sous -ensemble de valeurs, pour une réduction de la mémoire occupée.
A une étape 352 de test, on détermine si un maillage donné quantifié est associé à une trame-clef ou à une inter- trame.
A une étape 354, on applique une méthode de compression aux informations représentatives des maillages des trames-clefs, comprenant les sous-étapes 354-1, 354-2 et 354-3, chacune adaptée à un type particulier des données qui, considérées dans leur ensemble, définissent les maillages des trames-clefs.
A l'étape 354-1, les informations représentatives des triangles des trames-clefs sont compressées en utilisant un algorithme dit « Edgebreaker », connu par exemple de J. Rossignac, « Edgebreaker ;
Connectivity compression for triangle meshes », IEEE Transactions on Visualization and Computer Graphics, Vol. 5, No.l, pp. 47-61.
A l’étape 354-2, les informations représentatives des points, ou vertices, des trames clefs sont compressées en utilisant un algorithme de prédiction selon des méthodes connues, comme expliqué par exemple dans la référence C. Touma and C. Gotsman, Triangle Mesh Compression, Proceedings Graphics Interface 98, pp. 26-34,1998.
A l’étape 354-3, les informations représentatives des coordonnées de texture des triangles des trames-clefs sont compressées par un algorithme de prédiction sélective linéaire, comme par exemple décrit par Isenburg, M, et Snoeyink, J. dans « Compressing texture coordinates with selective linear predictions », Proceedings of Computer Graphics International ’ 2003. Cet algorithme dit de prédiction sélective linéaire code les coordonnées de textures par point (vertex) alors qu'elles sont d'ordinaire encodées par triangle, ce qui en réduit le nombre et permet une meilleure compression ainsi qu'une optimisation des calculs lors du décodage.
A une étape 356, on applique une méthode de compression par codage différentiel aux informations représentatives des points, ou vertices, des inter-trames.
Au sein d'un groupe de trames, les triangles et les coordonnées de textures des inter- trames sont les mêmes que ceux de la trame -clef correspondante, leurs différences sont donc nulles au sein de chaque groupe de trames, et ces informations n’ont pas à être ré-encodées .
Seules les informations portant sur les positions des points, pouvant varier d'une trame à l'autre, devront être encodées, et seules les variations entre trames le seront, selon le principe du codage différentiel .
Le codage différentiel, aussi appelée compression delta ou delta encoding, est une technique de compression de données sans perte consistant à transformer des données par la série des différences entre données successives, technique particulièrement efficace dans le cas present .
A une étape 358, les informations compressées au cours des étapes 354-1 à 354-3 et 356 sont à nouveau compressées, cette fois au moyen d'un algorithme de calcul d'entropie.
Il est spécifiquement favorable d'opérer un calcul d'entropie par compression arithmétique, telle que FSE (Finite State Entropy) , menant à un excellent taux de compression pour le type de données traitées .
Il est à noter que même si les étapes 354-1 à 354-3, 356 et 358 sont, prises individuellement, déjà connues de l'homme du métier, leur combinaison telle que décrite ici est nouvelle et amène des résultats supérieurs aux combinaisons connues de méthodes conventionnelles dans l'optique d'obtenir un flux vidéo compressé apte à être visionné en ligne.
En effet, les données vidéo concernant les maillages peuvent, lorsqu'elles sont compressées selon l'invention, aisément être décodées en temps réel par des systèmes de calculs classiques.
Au cours d'une étape 360, les flux de données résultant des étapes 308, 310 et 358 sont combinés en un fichier vidéo apte à être décodé en streaming pour visualisation via un réseau informatique.
Décodage
Lors du visionnage en streaming d'une vidéo stocké sous la forme du fichier vidéo de l'étape 360, les informations représentatives des trames sont envoyées via un réseau informatique et décodés séquentiellement, au fur et à mesure de leur arrivée au système informatique de l'usager sous la forme d'un flux 602 de données compressées, selon le diagramme de la figure 6.
Les données représentatives de chaque trame arrivent séquentiellement selon l'ordre de leurs trames respectives dans le flux vidéo et sont décodées dans cet ordre, les données T de textures et les données M de maillage étant séparées.
Les trames comprennent les trames-clefs et les inter-trames identifiées respectivement par KF et IF dans la figure et représentent les pièces d'information à décoder, M et T pour les informations représentatives des maillages et des textures, respectivement .
Au cours d'une étape de test 604, les données représentatives des maillages et des textures sont respectivement identifiées pour être décodées séparément par la suite .
Au cours d'une étape 61.0, les données représentatives des textures T sont soumises à un décodage entropique.
Au cours d'une étape de test 612, les données décodées de l'étape 610 et correspondant respectivement aux trames-clefs KF et aux inter-trames IF sont identifiées. Les données représentatives des textures des trames-clés KF ne nécessitent pas de traitement supplémentaire, car bien qu'étant toujours sous un format compressé, il s'agit de la compression par bloc de l'étape 302, dont les produits peuvent être directement traité par les unités de traitement graphiques conventionnelles.
En revanche, au cours d'une étape 614, les données représentatives des textures des inter-trames IF, qui dépendent des données des autres trames, sont traitées de manière à reprendre les données de la trame précédente et de les modifier en y remplaçant ceux parmi les blocs pour lesquels un nouveau blou a été encodé suite a l ' étape 310 par le nouveau bloc correspondant .
Il s'agit d’un point de vue calculatoire d'une opération triviale et très rapide.
Au cours d'une étape 620, les données représentatives des maillages M sont soumises à d'abord un décodage de l’encodage entropique par FSE, qui est effectué selon des algorithmes classiques d'exécution très rapide.
Au cours d'une étape de test 622, les données correspondant respectivement aux trames-clefs KF et aux inter-trames IF sont identifiées .
Au cours d'une étape 624, les données M représentatives des maillages des trames-clefs KF obtenues à la suite des étapes 354-1, 354-2 et 354-3 sont décodées indépendamment des données des autres trames selon des méthodes conventionnelles, rapide eu égard aux types de compression utilisés (prédiction ou Edgebreaker) pour ces données.
Au cours d'une étape 626, les données représentatives des maillages M des inter- trames IF obtenues à la suite de l’étape 354, et qui dépendent des données déjà décodées des trames-clefs KF dont elles dépendent respectivement , sont décodées selon des méthodes conventionnelles, très rapides puisqu'il ne s'agit que d'une compression delta sur les positions des vertices. Au cours d'une étape 628, on opère la dé -quantification des données de maillage issues des étapes 624 et 626, selon des méthodes conventionnelles .
Finalement, les données obtenues a la suite des opérations 610, 614 et 628 sont traitées par une unité de traitement de données et/ou une unité de traitement graphique de manière conventionnelle afin de procéder à l'affichage 630 de la vidéo.
Gràce aux méthodes spécifiques employées pour l'encodage des données vidéos, le poids des données ainsi que la vitesse de décodage ont été sensiblement améliorés, le décodage pouvant être mis en œuvre par des unités de calcul conventionnels.
Il va de soi que la présente invention ne saurait être limitée aux modes de réalisation exposé plus haut, susceptible de subir des modifications sans pour autant sortir du cadre de l'invention.

Claims

REVENDICATIONS
1. Procédé (300 ) de compression d' un flux ( 172 ) vidéo volumétrique d' une scène ( 125 ) d’ action tridimensionnelle représentée par une pluralité de trames (F) , le procédé étant mis en œuvre par ordinateur, et selon lequel on génère un maillage (M) et une texture (T) pour chaque trame de la scène ( 125 ) et on définit des groupes de trames (FGr1 , FGr2 , FGr3 ) comprenant chacun une trame-clef (KF) et des inter- trames ( IF) dont les maillages sont déf inis par rapport au maillage de la trame - clef correspondante , le procédé comprenant une étape de compression des informations représentatives des textures et étant caractérisé en ce que l ' étape de compression de texture comprend, pour chaque groupe de trames , les étapes de :
- compresser ( 302 ) les informations représentatives des textures de chacune des trames du groupe selon une méthode de compression par blocs apte à former des blocs directement exploitables par une unité de traitement graphique conventionnelle selon des algorithmes standards tels que DXT, ASTC ou PVRTC , définissant ainsi des blocs (B1 , B2 , B3 , BNf ) de pixels directement exploitables par une unité de traitement graphique conventionnelle , et comprenant des blocs associés à la trame-clef et des blocs associés respectivement à chacune des inter-trame ;
- déterminer (304 ) , à partir des blocs associés à la trame-clef et des blocs associés aux inter- trames , d’ une part des premiers blocs (210 ) aptes à former une texture composite de la trame-clef , et d' autre part des deuxièmes blocs (220 ) aptes à modifier par remplacements itératifs de blocs la texture composite de la trame- clef de manière à former des textures approchées des inter- trames ;
- former (308 ) une texture composite de la trame- clef du groupe de trames à partir de premiers blocs associés à la trame-clef et de premiers blocs associés aux inter-trames , et encoder cette texture composite ; et
- encoder (310 ) les textures des inter- trames sur la base de la texture composite de la trame-clef et des deuxièmes blocs .
2, Procédé selon la revendication 1, dans lequel les étapes d'encodage des textures composites des trames-clefs et des textures des inter-trames comprennent une compression par codage entropique.
3. Procédé selon les revendications 1 ou 2, dans lequel l'étape de détermination des premiers blocs et des deuxièmes blocs comprend une étape (304-1, 304-2) d'évaluation de différences graphiques quantifiées des blocs d'un groupe de trames d'une position donnée les uns par rapport aux autres, cette étape d'évaluation reposant sur des calculs tels que des calculs de PSNR (Peak Signal to Noise Ratio) entre deux blocs considérés, résultant en des nombres chacun représentatifs des variations graphiques entre ces deux blocs considérés .
4. Procédé selon la revendication 3, dans lequel, pour chacun des blocs du groupe de trames, les différences graphiques sont évaluées vis-à-vis de l'ensemble des autres blocs du groupe de trames.
5. Procédé selon la revendication 3 ou 4 , dans lequel l'étape de détermination des premiers blocs et des deuxièmes blocs comprend en outre des étapes de :
- construire un graphe (450) comprenant des nœuds interconnectés selon des lignes et des colonnes, les différences graphiques quantifiées étant affectées à un coût (ErrVal) de déplacement selon une ligne entre deux nœuds et un coût (Ccalc) étant affecté aux déplacements selon une colonne, et
- déterminer un chemin (Popt) de coût le plus bas dans ce graphe, chaque début de chemin au niveau d'une colonne étant associé à l'un des premiers blocs (B2) et chaque déplacement selon une colonne étant associé à l'un des deuxièmes blocs (B4) , le coût le plus bas valant une somme de coûts (ErrVal) de déplacements chacun entre deux nœuds sur une même ligne et de coûts (Ccalc) de déplacements chacun entre deux nœuds sur une même colonne, le chemin étant constitué des déplacements chacun entre deux nœuds sur une même ligne et des déplacements chacun entre deux nœuds sur une même colonne .
6 . Procédé selon la revendication 5 , dans lequel l ' étape de détermination d' un chemin met en œuvre un algorithme de Dij kstra .
7 . Procédé selon l ' une quelconque des revendications précédentes , comprenant en outre une étape de compression des informations représentatives des maillages comprenant les étapes de : compresser (350 ) les informations représentatives des maillages par quantification ; compresser (354 ) les informations représentatives des maillages quantifiées selon une méthode de compression qui comprend les étapes de ; compresser (354 - 1) des informations représentatives de triangles des maillages des trames-clefs selon l ' algorithme Edgebreaker ;
- compresser (354 -2 ) des informations représentatives de points des maillages des trames-clefs selon un algorithme de prédiction; compresser ( 354 - 3 ) des informations représentatives de coordonnées de texture des trames-clefs selon un algorithme de prédiction sélective linéaire ; et
- compresser (356 ) des informations représentatives de points des maillages des inter-trames par codage différentiel ; et compresser (358 ) , au moyen d' un algorithme de calcul d' entropie , les informations compressées représentatives desdits points des maillages , desdits triangles et desdites coordonnées de texture des trames -clefs ainsi que les informations représentatives des points des maillages des inter-trames .
8 . Système de traitement de données comprenant des moyens de mettre en œuvre les étapes du procédé selon l'une quelconque des revendications 1 à 7 .
9. Programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon l'une quelconque des revendications 1 à 7.
10. Support lisible par ordinateur comprenant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon l'une quelconque des revendications 1 à 7.
PCT/FR2021/052252 2020-12-17 2021-12-09 Procédé et dispositif de compression de données représentatives d' une scène tridimensionnelle volumétrique en vue d'une décompression en temps réel pour un visionnage en ligne WO2022129737A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112021006478.9T DE112021006478T5 (de) 2020-12-17 2021-12-09 Verfahren und vorrichtung zum komprimieren von einer szene mit dreidimensionalem volumen repräsentierenden daten im hinblick auf eine echtzeit-dekompression für eine online-betrachtung
GB2309035.0A GB2616566A (en) 2020-12-17 2021-12-09 Method and device for compressing data representative of a volumetric three-dimensional scene with a view to real-time decompression for online viewing
JP2023537222A JP2024503787A (ja) 2020-12-17 2021-12-09 ボリュメトリック3次元シーンを表すデータをオンライン視聴のためにリアルタイム解凍するためのビューを用いて圧縮する方法及び装置
US18/267,894 US20240040101A1 (en) 2020-12-17 2021-12-09 Method and device for compressing data representative of a volumetric three-dimensional scene with a view to real-time decompression for online viewing
KR1020237023968A KR20230119694A (ko) 2020-12-17 2021-12-09 온라인 시청을 위한 실시간 압축해제를 위해 볼류메트릭3차원 장면을 나타내는 데이터를 압축하기 위한 방법 및 디바이스

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2013513 2020-12-17
FR2013513A FR3118379B1 (fr) 2020-12-17 2020-12-17 Procédé et dispositif de compression de données représentatives d'une scène tridimensionnelle volumétrique en vue d’une décompression en temps réel pour un visionnage en ligne.

Publications (1)

Publication Number Publication Date
WO2022129737A1 true WO2022129737A1 (fr) 2022-06-23

Family

ID=74871569

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2021/052252 WO2022129737A1 (fr) 2020-12-17 2021-12-09 Procédé et dispositif de compression de données représentatives d' une scène tridimensionnelle volumétrique en vue d'une décompression en temps réel pour un visionnage en ligne

Country Status (7)

Country Link
US (1) US20240040101A1 (fr)
JP (1) JP2024503787A (fr)
KR (1) KR20230119694A (fr)
DE (1) DE112021006478T5 (fr)
FR (1) FR3118379B1 (fr)
GB (1) GB2616566A (fr)
WO (1) WO2022129737A1 (fr)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FARAMARZI ESMAEIL ET AL: "Mesh Coding Extensions to MPEG-I V-PCC", 21 September 2020 (2020-09-21), pages 1 - 5, XP055837185, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stampPDF/getPDF.jsp?tp=&arnumber=9287057&ref=aHR0cHM6Ly9zY2hvbGFyLmdvb2dsZS5jb20v> [retrieved on 20210902], DOI: 10.1109/MMSP48831.2020.9287057 *
JEAN-EUDES MARVIE (INTERDIGITAL) ET AL: "[V-PCC][EE2.6-related] Proposition of an anchor and a test model for coding animated meshes", no. m55327, 5 October 2020 (2020-10-05), XP030292836, Retrieved from the Internet <URL:https://dms.mpeg.expert/doc_end_user/documents/132_OnLine/wg11/m55327-v1-m55327-v1.zip m55327_VideoCodingOfGenericAnimatedMeshes.docx> [retrieved on 20201005] *
TANG DANHANG ET AL: "Real-time compression and streaming of 4D performances", ACM TRANSACTIONS ON GRAPHICS, ACM, NY, US, vol. 37, no. 6, 4 December 2018 (2018-12-04), pages 1 - 11, XP058464802, ISSN: 0730-0301, DOI: 10.1145/3272127.3275096 *

Also Published As

Publication number Publication date
US20240040101A1 (en) 2024-02-01
FR3118379A1 (fr) 2022-06-24
KR20230119694A (ko) 2023-08-16
FR3118379B1 (fr) 2024-03-15
DE112021006478T5 (de) 2023-11-02
GB2616566A (en) 2023-09-13
JP2024503787A (ja) 2024-01-29

Similar Documents

Publication Publication Date Title
WO2020188403A1 (fr) Remplissage de géométrie d&#39;un nuage de points
US7324594B2 (en) Method for encoding and decoding free viewpoint videos
FR2788153A1 (fr) Procede de codage/decodage d&#39;un treillis tridimensionnel
FR2756399A1 (fr) Procede et dispositif de compression video pour images de synthese
JP5575975B2 (ja) コンピュータグラフィックスを使用して少なくとも1つの画像をレンダリングするデータ符号化方法及びデバイス並びに対応する復号化方法及びデバイス
Chai et al. Depth map compression for real-time view-based rendering
EP3139608A1 (fr) Procédé de compression d&#39;un flux de données vidéo
CA2346342C (fr) Compression et codage de reseau maille tridimensionnel
US20240054685A1 (en) Point cloud decoding method, point cloud encoding method, and point cloud decoding device
US20220360823A1 (en) Device and method for processing point cloud data
WO2022129737A1 (fr) Procédé et dispositif de compression de données représentatives d&#39; une scène tridimensionnelle volumétrique en vue d&#39;une décompression en temps réel pour un visionnage en ligne
EP1574068B1 (fr) Procede de codage d&#39;une image par ondelettes et procede de decodage correspondant
EP4240016A1 (fr) Dispositif de transmission de données de nuage de points, procédé de transmission de données de nuage de points, dispositif de réception de données de nuage de points et procédé de réception de données de nuage de points
EP1181826B1 (fr) Codage d&#39;images hierarchiques a transformation variable
FR2856548A1 (fr) Procede de representation d&#39;une sequence d&#39;images par modeles 3d, signal et dispositifs correspondants
WO2020188172A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;une séquence vidéo multi-vues
EP2737452B1 (fr) PROCÉDÉ DE CODAGE D&#39;UNE IMAGE APRÈS REDIMENSIONNEMENT PAR SUPPRESSION DE PIXELS et procédé de transmission d&#39;image entre une entité émettrice et une entité réceptrice
US20230306643A1 (en) Mesh patch simplification
FR2848373A1 (fr) Procede de mesure d&#39;artefacts de bloc
EP4199516A1 (fr) Réduction de données redondantes dans un codage vidéo immersif
WO2023144138A1 (fr) Procédés d&#39;émission et de réception d&#39;un masque pour le tatouage d&#39;une image
WO2023180842A1 (fr) Simplification de patch de maillage
Ferreira Dynamic 3D Point Cloud Compression
CN117896536A (zh) 点云解码、编码方法、介质、电子设备及产品
WO2023203416A1 (fr) Codage et décodage d&#39;ondelettes de maillages dynamiques sur la base de composants vidéo et de métadonnées

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21847996

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 202309035

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20211209

WWE Wipo information: entry into national phase

Ref document number: 18267894

Country of ref document: US

Ref document number: 2023537222

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20237023968

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 112021006478

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21847996

Country of ref document: EP

Kind code of ref document: A1