Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CONSTRUCTING A DEPTH IMAGE FROM A MULTIVIEW VIDEO, METHOD FOR DECODING A DATA STREAM REPRESENTATIVE OF A MULTIVIEW VIDEO, ENCODING METHOD, DEVICES, SYSTEM, TERMINAL EQUIPMENT, SIGNAL AND COMPUTER PROGRAMS CORRESPONDING THERETO
Document Type and Number:
WIPO Patent Application WO/2022/269163
Kind Code:
A1
Abstract:
The invention relates to a method for constructing a depth image associated with a view from a multiview video, called current view, based on a data stream (FD) representative of said video, said stream comprising information representative of the motion vectors of a texture image associated with said current view with respect to at least one reference texture image (TR), said texture image having been divided into blocks, characterized in that said method comprises: obtaining (70) said motion vectors based on information encoded in the stream; when at least one motion vector (MV) has been obtained for at least one block, called current block, of the texture image, motion-compensating (76) a block (BPc) of the depth image, collocated with the current block, based on said at least one motion vector (MV) and on at least one available reference depth image (PR), said reference depth image (PR) being associated with the same view as said reference texture image (TR).

Inventors:
HENRY FÉLIX (FR)
GARUS PATRICK (FR)
Application Number:
PCT/FR2022/051126
Publication Date:
December 29, 2022
Filing Date:
June 13, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
H04N19/597
Domestic Patent References:
WO2009091383A22009-07-23
Other References:
YING CHEN ET AL: "Description of 3D video coding technology proposal by Qualcomm Incorporated", 98. MPEG MEETING; 28-11-2011 - 2-12-2011; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. m22583, 21 November 2011 (2011-11-21), pages 1 - 21, XP030051146
ANONYMOUS: "Test Model under Consideration for AVC based 3D video coding", no. n12349, 3 December 2011 (2011-12-03), XP030018844, Retrieved from the Internet [retrieved on 20111203]
GIANLUCA CERNIGLIARO ET AL: "Low Complexity Mode Decision and Motion Estimation for H.264/AVC Based Depth Maps Encoding in Free Viewpoint Video", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, USA, vol. 23, no. 5, 1 May 2013 (2013-05-01), pages 769 - 783, XP011506459, ISSN: 1051-8215, DOI: 10.1109/TCSVT.2012.2223632
WENXIU SUNLINGFENG XUOSCAR C. AUSUNG HIM CHUICHUN WING: "An overview of free viewpoint Depth-lmage-BasedRendering (DIBR", KWOK THE HONG KONG UNIVERSITY OF SCIENCE AND TECHNOLOGY, PUBLIÉ DANS LES PROCEEDINGS OF THE SECOND APSIPA ANNUAL SUMMIT AND CONFÉRENCE, pages 1023 - 1030
Download PDF:
Claims:
REVENDICATIONS

1. Procédé de construction d'une image de profondeur (Pc) associée à une vue d'une vidéo multi- vues (VMV), dite vue courante (Vc), à partir d'un flux de données (FD) représentatif de ladite vidéo, ledit flux comprenant des informations représentatives des vecteurs de mouvement d'une image de texture (TOc) associée à ladite vue courante (Vc) par rapport à au moins une image de texture de référence (TR), ladite image de texture ayant été découpée en blocs, caractérisé en ce que ledit procédé comprend :

- l'obtention (70) desdits vecteurs de mouvement à partir des informations codées dans le flux;

- lorsqu'au moins un vecteur de mouvement (MV) a été obtenu pour au moins un bloc, dit bloc courant (Bc), de l'image de texture (TOc), la compensation en mouvement (76) d'un bloc (BPc) de l'image de profondeur, co-localisé avec le bloc courant (Bc), à partir dudit au moins un vecteur de mouvement (MV) et d'au moins une image de profondeur de référence (PR) disponible, ladite image de profondeur de référence (PR) étant associée à une même vue que ladite image de texture de référence (TR).

2. Procédé de construction selon la revendication précédente, caractérisé en ce qu'il comprend l'obtention (72) d'un indicateur de compensation de mouvement (Fcm) à partir d'une information codée dans le flux, ledit indicateur étant associé audit bloc (BPc) de l'image de profondeur et en ce que le procédé décide (74) de mettre en oeuvre ladite compensation de mouvement lorsque l'indicateur (Fcm) est positionné à une valeur prédéterminée.

3. Procédé de construction selon l'une des revendications précédentes, caractérisé en ce qu'il comprend l'obtention (71) d'un identifiant (ID_TR) de l'image de texture de référence par décodage d'une information codée dans le flux de données et l'obtention (75) de l'image de profondeur de référence (PR) à partir dudit identifiant.

4. Procédé de décodage d'un flux de données (FD) représentatif d'une vidéo multi-vues, ledit flux comprenant des informations codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, caractérisé en ce qu'il comprend : le décodage (60) des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; et la construction d'au moins un bloc d'une image de profondeur (Pc) associée à la vue courante au moins à partir des vecteurs de mouvements décodés selon un procédé conforme à l'une quelconque des revendications 1 à 3.

5. Procédé de décodage d'un flux de données selon la revendication 4, caractérisé en ce qu'il comprend en outre le décodage (63) d'une information codée représentative d'un indicateur (Fcm) de compensation de mouvement dudit au moins un bloc de ladite image de profondeur, ladite construction étant mise en oeuvre pour ledit bloc (BPc) lorsque l'indicateur (Fcm) est positionné à une valeur prédéterminée.

6. Procédé de codage d'un flux de données (FD) représentatif d'une vidéo multi-vues (VMV), caractérisé en ce qu'il comprend: la détermination (80) de vecteurs de mouvement d'une image de texture (TOc) associée à une vue de la vidéo multi-vues, dite vue courante, par rapport à une image de texture de référence (TR), ladite image de texture ayant été découpée en blocs ; le codage (81) des vecteurs de mouvement dans le flux de données (FD) ; l'obtention (82) d'une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée (POc) ; la construction d'au moins un bloc compensé en mouvement (BCMP) d'une image de profondeur (P) associée à la vue courante, à partir d'au moins un vecteur de mouvement déterminé pour un au moins un bloc de l'image de texture co-localisé avec le bloc (BCMP), selon un procédé conforme à l'une quelconque des revendications 1 à 3 ; l'évaluation (85) du bloc (BCMP) compensé en mouvement de ladite image de profondeur - construite (P) par comparaison avec le bloc (BPc) co-localisé de l'image de profondeur capturée (POc), une erreur de compensation étant obtenue ; et le codage (86) d'une information représentative d'un indicateur (Fcm) de compensation de mouvement dudit au moins un bloc de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une valeur prédéterminée lorsque le critère d'erreur est satisfait.

7. Dispositif (100) de construction d'une image de profondeur (Pc) associée à une vue d'une vidéo multi-vues (VMV), dite vue courante (Vc), à partir d'un flux de données (FD) représentatif de ladite vidéo, ledit flux comprenant des informations codées représentatives des vecteurs de mouvement d'une image de texture (TOc) associée à ladite vue courante (Vc) par rapport à au moins une image de texture de référence (TR), ladite image de texture ayant été découpée en blocs, caractérisé en ce que ledit dispositif est configuré pour mettre en oeuvre : l'obtention (70) desdits vecteurs de mouvement par décodage des informations codées dans le flux ; lorsqu'au moins un vecteur de mouvement (MV) a été obtenu pour au moins un bloc, dit bloc courant (Bc), de l'image de texture (TOc), la compensation en mouvement (76) d'un bloc (BPc) de l'image de profondeur, co-localisé avec le bloc courant (Bc) à partir dudit au moins un vecteur de mouvement (MV) et d'au moins une image de profondeur de référence (PR) disponible, ladite image de profondeur de référence (PR) étant associée à une même vue que ladite image de texture de référence (TR).

8. Dispositif (200) de décodage d'un flux de données représentatif d'une vidéo multi-vues, ledit flux comprenant des informations codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, caractérisé en ce qu'il est configuré pour mettre en oeuvre: le décodage des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; la transmission desdites informations à un dispositif (100) de construction d'une image de profondeur associée à la vue courante, ledit dispositif (100) étant conforme à la revendication 7.

9. Dispositif (200') de décodage d'un flux de données (FD) représentatif d'une vidéo multi-vues, ledit flux comprenant des informations codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, caractérisé en ce qu'il est configuré pour mettre en oeuvre : le décodage (60) des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; et la construction d'au moins un bloc d'une image de profondeur (Pc) associée à la vue courante au moins à partir des vecteurs de mouvements décodés selon un dispositif (100) conforme à la revendication 7.

10. Dispositif (300) de codage d'un flux de données (FD) représentatif d'une vidéo multi-vues (VMV), caractérisé en ce qu'il est configuré pour mettre en oeuvre : la détermination de vecteurs de mouvement d'une image de texture (TOc) associée à une vue de la vidéo multi-vues, dite vue courante, par rapport à une image de texture de référence (TR), ladite image de texture ayant été découpée en blocs ; le codage des vecteurs de mouvement dans le flux de données (FD) ; l'obtention d'une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée (POc) ; la construction d'au moins un bloc compensé en mouvement (BCMP) d'une image de profondeur (P) associée à la vue courante, à partir du au moins un vecteur de mouvement déterminé pour un au moins un bloc de l'image de texture co-localisé avec le bloc (BCMP), par un dispositif (100) conforme à la revendication 7 ; l'évaluation du bloc (BCMP) compensé en mouvement de ladite image de profondeur construite par comparaison avec le bloc (BPc) co-localisé de l'image de profondeur capturée (POc), une erreur de compensation étant obtenue ; et le codage d'une information représentative d'un indicateur (Fcm) de compensation de mouvement dudit au moins un bloc de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une valeur prédéterminée lorsque le critère d'erreur est satisfait.

11. Système (S ; S') de navigation libre dans une vidéo multi-vues d'une scène, caractérisé en ce qu'il comprend un dispositif (200) de décodage de ladite vidéo selon la revendication 8 et un dispositif (100) de construction d'images de profondeur selon la revendication 7 ou un dispositif de décodage (200') selon la revendication 9, et un module (SYNT) de synthèse d'une vue selon un point de vue choisi par un utilisateur à partir des images de texture décodées et des images de profondeur construites.

12. Equipement terminal (UE, UE') configuré pour recevoir un flux de données codées (FD) représentatif d'une vidéo multi-vues, caractérisé en ce qu'il comprend un système de navigation libre (S, S') dans ladite vidéo multi-vues selon la revendication 11.

13. Signal porteur d'un flux de données codées (FD) représentatif d'une vidéo multi-vues, ledit flux comprenant des données codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture étant découpée en blocs, caractérisé en ce que ledit flux comprend des données codées représentatives d'un indicateur de compensation de mouvement (Fcm) obtenu par un procédé de codage conforme à la revendication 6, ledit indicateur étant associé audit au moins un bloc d'une image de profondeur (Pc) associée à ladite vue courante (Vc) et en ce que ledit indicateur (Fcm) est destiné, lorsqu'il est positionné à une valeur prédéterminée, à être utilisé pour mettre en oeuvre une compensation de mouvement dudit bloc de l'image de profondeur, à partir d'au moins un vecteur de mouvement décodé pour un bloc de l'image de texture co-localisé avec ledit bloc et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence.

14. Programme d'ordinateur comprenant des instructions de code de programme pour la mise en oeuvre d'un procédé selon l’une quelconque des revendications 1 à 6, lorsqu'il est exécuté par un processeur.

Description:
Procédé de construction d'une image de profondeur d'une vidéo multi-vues, procédé de décodage d'un flux de données représentatif d'une vidéo multi-vues, procédé de codage, dispositifs, système, équipement terminal, signal et programmes d'ordinateur correspondants

Domaine technique de l'invention

La présente invention se rapporte de manière générale au domaine du traitement d'images 3D, et plus précisément au décodage de séquences d'images multi-vues et, en particulier, à la construction d'une image de profondeur associée à une vue courante, à partir d'informations codées dans le flux de données et représentatives d'une image de texture de la même vue courante.

Art antérieur

Dans le domaine de la réalité virtuelle et de la vidéo immersive, la navigation libre permet au spectateur de regarder, à l'aide d'un dispositif de type Casque de Réalité Virtuelle, une scène de n’importe quel point de vue, que ce point de vue corresponde à un point de vue capturé par une caméra ou à un point de vue qui n’a pas été capturé par une caméra. Une telle vue qui n’a pas été capturée par la caméra est aussi appelée vue virtuelle ou vue intermédiaire car elle se situe entre des vues capturées par la caméra et doit être synthétisée pour la restitution de la scène au spectateur à partir des vues capturées.

Dans un contexte de vidéo immersive, c'est à dire où le spectateur a la sensation d'être immergé dans la scène, la scène est classiquement capturée par un ensemble de caméras, comme illustré par la figure 1. Ces caméras peuvent être de type 2D (caméras Ci, C 2 ...C N , avec N entier non nul de la figure 1), c'est-à-dire que chacune d'entre elles capture une vue selon un point de vue, ou de type 360, c'est à dire qu'elles capturent toute la scène à 360 degrés autour de la caméra (caméra C360 de la figure 1), donc selon plusieurs points de vue différents. Les caméras peuvent être disposées en arc, en rectangle, ou toute autre configuration qui permet de bien couvrir la scène.

En relation avec la figure 2, on obtient, à un instant donné, un ensemble d'images représentant la scène selon différentes vues. Comme il s'agit de vidéos, un échantillonnage temporel des images capturées est réalisé (par exemple à 30 images par seconde), afin de produire une vidéo multi-vues originale, comme illustré par la figure 3.

L'information capturée par ces caméras est encodée dans un flux de données et transmise à un décodeur, qui va décoder tout ou partie de ces vues. Ensuite, une synthèse de vue est appliquée afin de synthétiser la vue demandée par l'utilisateur à un instant donné, en fonction de sa position et de son angle de vue de la scène. On connaît du document intitulé « An overview of free viewpoint Depth-lmage-BasedRendering (DIBR) », par Wenxiu SUN, Lingfeng XU, Oscar C. AU, Sung Him CHUI, Chun Wing, KWOK The Hong Kong University of Science and Technology, publié dans les Proceedings of the Second APSIPA Annual Summit and Conférence, pages 1023-1030, Biopolis, Singapore, qui s'est tenue les 14-17 Décembre 2010, disponible à l'adresse http://www.apsipa.org/proceedings_2010/pdf/APSIPA197.pdf, une technique de synthèse d'images appelée « Depth-Based Image Rendering » (DIBR).

Selon cette technique, on dispose de plusieurs vues de la scène, et chaque vue contient une composante de texture (c'est-à-dire l'image au sens classique) et une composante de profondeur (c'est-à-dire une carte de profondeur, pour laquelle l'intensité de chaque pixel est associée à la profondeur de la scène à cet endroit). Ainsi, on connaît à la fois la couleur en chaque endroit de la scène mais aussi la géométrie des objets. Depuis un point de vue, on connaît une géométrie partielle de la scène (on ne peut connaître la géométrie de ce qui est derrière un objet, c'est-à-dire les zones occluses), mais en multipliant les points de vue, il est possible d'obtenir une couverture presque totale de la géométrie de la scène. Lorsque le spectateur demande à voir la scène depuis un point de vue particulier, une projection des pixels d'une ou plusieurs vues est réalisée à l'aide de la composante de profondeur, éventuellement en recombinant les projections issues de plusieurs vues afin de résoudre les occlusions.

On connaît aussi des techniques d'estimation de la profondeur d'un pixel d'une image de texture à partir d'une ou plusieurs autres images de texture, telles que par exemple la technique DERS (pour « Depth Estimation Reference Software », en anglais), décrite notamment dans le document intitulé « Enhanced Depth Estimation Reference Software (DERS) for Free-viewpoint T elevision », par Stankiewicz et al., publié en octobre 2013, par l'ISO et disponible sur le lien suivant https://www.researchgate.net/publication/271851694_Enhanced_ Depth_Estimation_Reference_Sof tware_DERS_for_Free-viewpoint_Television), la technique IVDE (pour « Immersive Video Depth Estimation », en anglais), décrite dans le document intitulé «Depth Map Refinement for Immersive Video », par D. Mieloch, publié le 11 janvier 2021 par IEEE et disponible sur le lien suivant : https://www.researchgate.net/publication/348408067_Depth_Map _Refinement_for_lmmersive_Vi deo), ou encore une technique basée sur une approche neuronale, comme GANet, décrite par exemple dans le document disponible sur le lien suivant :https://github.com/feihuzhang/GANet) ou enfin GWCNet décrite par exemple dans le document intitulé « Group-wise Corrélation Stéréo Network » par Guo et al., publié en mars 2019 et disponible sur le lien suivant : https://arxiv.org/pdf/1903.04025.pdf). Ces différentes techniques cherchent à estimer la disparité d'un pixel entre deux ou de multiples vues. La disparité est le déplacement du pixel dans l'image lorsque l'on change de vue. Lorsque l'on connaît la disparité d'un pixel et les paramètres de position, d'orientation et les caractéristiques des caméras qui ont capturé chacune de ces vues, on peut en déduire simplement la profondeur.

On connaît enfin de la norme MPEG-I partie 12, aussi appelée MIV (pour « MPEG Immersive Video », en anglais), décrite dans le document intitulé MPEG Immersive Video Coding Standard, par J. M. Boyce et al., publié par IEEE en février 2019 et disponible à l'adresse https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber =9374648, une technique de codage et de décodage d'une vidéo multi-vues. Cette norme décrit en particulier un profil de codage et de décodage appelé « Geometry Absent », selon lequel (Figure 4, où seules les vues à un instant T sont représentées), seules les composantes ou images de textures originales TO sont codées. Aucune information de profondeur n'est donc transmise dans le flux de données codées. Côté décodeur, une version décodée T D des images de textures est obtenue à partir des informations codées dans le flux de données. Les composantes de profondeur P E d'une ou plusieurs vues sont ensuite estimées à partir des images de textures décodées T D . De la sorte, les images de textures décodées et les images de profondeurs estimées sont disponibles pour une éventuelle synthèse DIBR ultérieure d'une vue V, pour répondre à la demande de l'utilisateur à l'instant T.

Le profil « Geometry Absent » de la norme MIV présente plusieurs avantages :

- la composante de profondeur n'est pas transmise, ce qui réduit la quantité de données à traiter (encodage, transmission et décodage) et permet d'économiser des ressources de calcul et de bande passante ;

- la composante de profondeur n'est pas capturée lors de l'acquisition de la vidéo multi-vues de la scène, donc il n'est pas nécessaire de recourir à des dispositifs spécifiques de détection et d'estimation de la distance comme des LIDAR (pour « Laser Imaging Détection And Ranging », en anglais), basée sur l’analyse des propriétés d’un faisceau de lumière renvoyé vers son émetteur. Toutefois, un inconvénient majeur de cette approche est qu'elle nécessite en contrepartie une estimation de cette composante de profondeur dans le dispositif de décodage. Or, cette estimation est très coûteuse en ressources de calculs, ce qui pose problème lorsque le dispositif de décodage est embarqué dans un terminal utilisateur plus léger et contraint en ressources que le dispositif d'encodage, tel qu'un téléphone intelligent (pour « smartphone », en anglais), un terminal vidéo (pour « Set-Top-Box », en anglais), un casque de réalité virtuelle (pour « Head Mounted Display », en anglais) ou plus généralement un objet connecté.

Il existe donc un besoin d'une solution moins complexe et plus économe en ressources de calculs. L'invention vient améliorer la situation.

Présentation de l’invention L'invention répond à ce besoin en proposant un procédé de construction d'une image de profondeur associée à une vue d'une vidéo multi-vues, dite vue courante, à partir d'un flux de données représentatif de ladite vidéo, ledit flux comprenant des informations représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante par rapport à au moins une image de texture de référence, ladite image de texture ayant été découpée en blocs.

Ledit procédé comprend :

- l'obtention desdits vecteurs de mouvement à partir des informations codées dans le flux;

- lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc, dit bloc courant de l'image de texture, la compensation en mouvement d'un bloc de l'image de profondeur, co-localisé avec le bloc courant, à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à une même vue que ladite image de texture de référence.

L'invention propose une approche tout-à-fait nouvelle et inventive pour construire une image de profondeur d'une vue d'une vidéo multi-vues, lorsque celle-ci n'a pas été transmise dans le flux de données. Elle consiste à exploiter les vecteurs de mouvement transmis dans le flux pour l'image de texture associée à la même vue pour compenser en mouvement au moins une partie de cette image de profondeur à partir d'une image de profondeur de référence disponible (déjà décodée ou construite conformément au procédé de construction selon l'invention) et associée à la même vue que l'image de texture de référence.

Une telle compensation en mouvement est beaucoup moins complexe à mettre en oeuvre qu'une estimation de l'image de profondeur à partir des images de texture selon une des techniques de l'art antérieur précitées, telles que DERS, IVDE, GaNet etc. Les ressources du terminal récepteur sont donc préservées.

L'invention trouve une application particulière dans le cas du profil « Geometry Absent » défini par la norme de codage MIV, selon laquelle aucune information de profondeur n'est transmise dans le flux de données codées.

Avantageusement, lorsqu'aucun vecteur de mouvement n'a été décodé pour ledit au moins un bloc de l'image de texture, par exemple selon le mode de codage INTRA ou un autre mode de codage qui n'utilise pas de vecteur de mouvement, le procédé ne déclenche pas la mise en oeuvre de ladite compensation en mouvement dudit au moins un bloc et comprend l'estimation dudit au moins un bloc de l'image de profondeur à partir d'au moins une image de texture précédemment traitée.

Selon un aspect de l'invention, le procédé comprend l'obtention d'un indicateur de compensation de mouvement à partir d'une information codée dans le flux, ledit indicateur étant associé audit bloc de l'image de profondeur et le procédé comprend la décision de mettre en oeuvre ladite compensation de mouvement lorsque l'indicateur est positionné à une valeur prédéterminée.

Un avantage est qu'on peut décider côté codeur pour quels éléments de l'image de profondeur on autorise la reconstruction de l'image de profondeur par compensation de mouvement et transmettre cette décision par le biais de cet indicateur. Ce mode de réalisation s'applique avantageusement au cas où l'image de profondeur de la vue courante a été effectivement capturée coté codeur, puis utilisée pour évaluer un niveau de performance de la compensation en mouvement pour cette image, par exemple en comparant l'image de profondeur compensée en mouvement à l'image de profondeur réellement capturée. Une telle comparaison permet de calculer une erreur, par exemple une quantité d'énergie d'un résidu entre l'image de profondeur effectivement capturée et l'image de profondeur compensée en mouvement à partir des vecteurs de mouvement de l'image de texture associée à la vue courante. Dans ce cas, si l'erreur satisfait un critère d'erreur prédéterminé, par exemple si la quantité d'énergie calculée est inférieure à un seuil prédéterminé, l'indicateur est positionné à la valeur prédéterminée, par exemple égale à 1, sinon l'indicateur est positionné à une autre valeur, par exemple égale à 0.

De la sorte, la compensation en mouvement n'est mise en oeuvre pour tout ou partie de l'image de profondeur que lorsqu'elle est suffisamment performante en termes de qualité. Lorsque ce n'est pas le cas, une estimation classique de la ou des autres parties de l'image de profondeur, l'estimation classique prend le relais.

Selon un autre aspect de l'invention, le procédé comprend l'obtention d'un identifiant de l'image de texture de référence à partir d'une information codée dans le flux de données et l'obtention de l'image de profondeur de référence à partir dudit identifiant.

De la sorte, il est possible de retrouver l'image de profondeur de référence associée à la même vue que cette image de texture de référence pour la compensation en mouvement d'une image de profondeur associée à la vue courante.

L'invention concerne également un dispositif de construction d'une image de profondeur associée à une vue d'une vidéo multi-vues, dite vue courante, à partir d'un flux de données représentatif de ladite vidéo, ledit flux comprenant des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante par rapport à au moins une image de texture de référence, ladite image de texture ayant été découpée en blocs. Ledit dispositif est configuré pour mettre en oeuvre :

- l'obtention desdits vecteurs de mouvement à partir des informations codées dans le flux;

- lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc, dit bloc courant de l'image de texture, la compensation en mouvement d'un bloc de l'image de profondeur, co-localisé avec le bloc courant à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à une même vue que ladite image de texture de référence.

Avantageusement, ledit dispositif est configuré pour mettre en oeuvre les étapes du procédé de construction tel que décrit précédemment dans ses différents modes de réalisation. Le dispositif de construction présente en combinaison tout ou partie des caractéristiques exposées dans l'ensemble de ce document.

Corrélativement, l'invention concerne aussi un procédé de décodage d'un flux de données représentatif d'une vidéo multi-vues, ledit flux comprenant des informations codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, ledit procédé comprenant :

- le décodage des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; et

- la transmission desdites informations à un dispositif de construction d'une image de profondeur associée à la vue courante , ledit dispositif étant configuré pour mettre en oeuvre:

- l'obtention desdits vecteurs de mouvement à partir desdites informations;

- lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc, dit bloc courant de l'image de texture, la compensation en mouvement d'un bloc de l'image de profondeur, co-localisé avec le bloc courant, à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à une même vue que ladite image de texture de référence.

Selon une variante, l'invention concerne un procédé de décodage d'un flux de données représentatif d'une vidéo multi-vues, ledit flux comprenant des informations codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, ledit procédé comprenant:

- le décodage des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; et

- la construction d'au moins un bloc d'une image de profondeur associée à la vue courante au moins à partir des vecteurs de mouvements décodés selon le procédé de construction précité. Avantageusement, le procédé de décodage comprend les caractéristiques du procédé de construction précité.

Selon un autre aspect, le procédé de décodage comprend en outre le décodage d'une information codée représentative d'un indicateur de compensation de mouvement dudit au moins un bloc de ladite image de profondeur, ladite construction étant mise en oeuvre pour ledit bloc lorsque l'indicateur est positionné à une valeur prédéterminée. L'invention concerne également un dispositif de décodage d'un flux de données représentatif d'une vidéo multi-vues, ledit flux comprenant vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs, ledit dispositif étant configuré pour mettre en oeuvre:

- le décodage des informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante ; et

- la transmission desdites informations au dispositif de construction d'une image de profondeur associée à la vue courante précité.

Avantageusement, ledit dispositif est configuré pour mettre en oeuvre les étapes du procédé de décodage tel que décrit précédemment dans ses différents modes de réalisation.

Selon une variante, le dispositif de construction est lui-même intégré au dispositif de décodage. Avantageusement, les dispositifs de construction et de décodage précités sont intégrés à un système de navigation libre dans une vidéo multi-vues d'une scène. Selon l'invention, ledit système comprend en outre un module de synthèse d'une vue selon un point de vue choisi par un utilisateur à partir des images de texture décodées et des images de profondeur construites.

Avantageusement, le système de navigation libre précité est intégré à un équipement terminal configuré pour recevoir un flux de données codées représentatif d'une vidéo multi-vues. L'équipement terminal et le système de navigation libre présentent au moins les mêmes avantages que ceux conférés par les procédés de construction et de décodage précités.

Corrélativement, l'invention concerne aussi un procédé de codage d'un flux de données représentatif d'une vidéo multi-vues et comprenant :

- la détermination de vecteurs de mouvement d'une image de texture associée à une vue de la vidéo multi-vues, dite vue courante, par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs ;

- le codage des vecteurs de mouvement dans le flux de données ;

- l'obtention d'une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée ;

- lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc de l'image de texture, la compensation en mouvement d'au moins un bloc d'une image de profondeur associée à la vue courante, dite image de profondeur construite, ledit bloc étant co-localisé avec ledit bloc de l'image de texture, à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence ;

- l'évaluation d'un bloc compensé en mouvement de ladite image de profondeur reconstruite par comparaison avec le bloc co-localisé de l'image de profondeur capturée, une erreur de compensation étant obtenue ; et

- le codage d'une information représentative d'un indicateur de compensation de mouvement dudit au moins un bloc de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une valeur prédéterminée lorsque le critère d'erreur est satisfait. L'invention concerne aussi un dispositif de codage d'un flux de données représentatif d'une vidéo multi-vues et configuré pour mettre en oeuvre :

- la détermination de vecteurs de mouvement d'une image de texture associée à une vue de la vidéo multi-vues, dite vue courante, par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs ;

- le codage des vecteurs de mouvement dans le flux de données;

- l'obtention d'une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée ;

- lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc de l'image de texture, la compensation en mouvement d'au moins un bloc d'une image de profondeur associée à la vue courante, dite image de profondeur construite, ledit bloc étant co-localisé avec ledit bloc de l'image de texture, à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence ;

- l'évaluation d'un bloc compensé en mouvement de ladite image de profondeur reconstruite par comparaison avec le bloc co-localisé de l'image de profondeur capturée, une erreur de compensation étant obtenue ; et

- le codage d'une information représentative d'un indicateur de compensation de mouvement dudit au moins un bloc de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une valeur prédéterminée lorsque le critère d'erreur est satisfait. Avantageusement, ledit dispositif est configuré pour mettre en oeuvre les étapes du procédé de codage tel que décrit précédemment dans ses différents modes de réalisation.

Corrélativement, l'invention concerne aussi un signal porteur d'un flux de données codées représentatif d'une vidéo multi-vues, ledit flux comprenant des données codées représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, ladite image de texture ayant été découpée en blocs. Selon l'invention, ledit flux comprend des données codées représentatives d'un indicateur de compensation de mouvement, ledit indicateur étant associé audit au moins un bloc d'une image de profondeur associée à ladite vue courante et ledit indicateur est destiné, lorsqu'il est positionné à une valeur prédéterminée, à être utilisé pour mettre en oeuvre une compensation de mouvement dudit bloc de l'image de profondeur, à partir d'au moins un vecteur de mouvement décodé et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence.

L'invention concerne également des produits programme d’ordinateur comprenant des instructions de code de programme pour la mise en oeuvre des procédés tels que décrits précédemment, lorsqu'ils sont exécutés par un processeur.

Un programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel sont enregistré des programmes d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes des procédés selon l'invention tel que décrits ci-dessus.

Un tel support d’enregistrement peut être n’importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu’une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d’enregistrement magnétique, par exemple un support mobile (carte mémoire) ou un disque dur ou un SSD.

D’autre part, un tel support d’enregistrement peut être un support transmissible tel qu’un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d’autres moyens, de sorte que le programme d'ordinateur qu'il contient est exécutable à distance. Le programme selon l’invention peut être en particulier téléchargé sur un réseau par exemple le réseau Internet.

Alternativement, le support d’enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l’exécution des procédés de construction, de codage et/ou de décodage précités.

Selon un exemple de réalisation, la présente technique est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu’à un composant matériel ou à un ensemble de composants matériels et logiciels.

Un composant logiciel correspond à un ou plusieurs programmes d’ordinateur, un ou plusieurs sous- programmes d’un programme, ou de manière plus générale à tout élément d’un programme ou d’un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci- dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d’une entité physique (terminal, serveur, passerelle, set-top-box, routeur, etc.) et est susceptible d’accéder aux ressources matérielles de cette entité physique (mémoires, supports d’enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.). Par la suite, on entend par ressources tous ensembles d'éléments matériels et/ou logiciels support d'une fonction ou d'un service, qu'ils soient unitaires ou combinés.

De la même manière, un composant matériel correspond à tout élément d’un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (« firmware » en anglais), etc.

Chaque composante du système précédemment décrit met bien entendu en oeuvre ses propres modules logiciels.

Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en oeuvre de la présente technique.

Brève description des figures

D'autres buts, caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée à titre de simple exemple illustratif, et non limitatif, en relation avec les figures, parmi lesquelles :

Figure 1 : présente un exemple d'agencement d'une pluralité de caméras formant un système d'acquisition d'une vidéo multi-vues d'une scène, selon l'art antérieur ;

Figure 2 : illustre de façon schématique une pluralité d'images de la scène, capturées par la pluralité de caméras à un instant donné, selon l'art antérieur ;

Figure 3 : illustre de façon schématique une séquence de la pluralité d'images, capturées par la pluralité de caméras à plusieurs instants successifs, formant la vidéo multi-vues originale, selon l'art antérieur ;

Figure 4 : illustre de façon schématique un exemple de traitement d'un flux de données codées représentatif d'une vidéo multi-vues par un équipement terminal selon l'art antérieur ;

Figure 5 : illustre de façon schématique un exemple d'architecture d'un équipement terminal comprenant un système de navigation libre dans une vidéo multi-vues comprenant un dispositif de décodage d'un flux de données codées représentatif d'une vidéo multi-vues et un dispositif de construction d'une image de profondeur associée à une vue de ladite vidéo selon un mode de réalisation de l'invention ;

Figure 6 : décrit sous forme d'un logigramme les étapes d'un procédé de décodage d'un flux de données codées représentatif d'une vidéo multi-vues, selon un exemple de réalisation de l'invention ; Figure 7 : décrit sous forme d'un logigramme les étapes d'un procédé de construction d'une image de profondeur d'une vue d'une vidéo multi-vues selon un mode de réalisation de l'invention ;

Figure 8 : décrit sous forme d'un logigramme les étapes d'un procédé de codage d'un flux de données codées représentatif d'une vidéo multi-vues selon un mode de réalisation de l'invention ; Figure 9 : détaille un exemple de mise en oeuvre des procédés précités selon un mode de réalisation de l'invention ;

Figure 10 : décrit un exemple de structure matérielle d'un dispositif de construction d'une image de profondeur selon l'invention ;

Figure 11 : décrit un exemple de structure matérielle d'un dispositif de décodage d'une vidéo multi- vues selon l'invention ; et

Figure 12 : décrit un exemple de structure matérielle d'un dispositif de codage d'une vidéo multi- vues selon l'invention.

Description détaillée de l'invention

Le principe de l'invention repose sur le décodage de vecteurs de mouvement d'une image de texture associée à une vue courante d'une vidéo multi-vues par rapport à une image de texture de référence et sur la construction d'au moins un bloc d'une image de profondeur associée à ladite vue courante, par compensation en mouvement de ce bloc à partir du vecteur de mouvement décodé pour un bloc co-localisé de l'image de texture et d'une image de profondeur de référence disponible (décodée classiquement ou construite selon l'invention), ladite image de profondeur de référence étant associée à une même vue que ladite image de texture de référence.

L'invention trouve une application particulière dans un système de navigation libre au sein d'une vidéo multi-vues, par exemple embarqué dans un équipement terminal, par exemple de type téléphone mobile ou casque de réalité virtuelle. En effet, dans un tel système, les images de profondeur associées aux vues sont utilisées en association avec les images de textures décodées pour synthétiser la vue souhaitée par l'utilisateur.

En relation avec la Figure 5, on présente un exemple l'architecture d'un équipement terminal UE, UE' comprenant un casque de réalité virtuelle HMD selon un mode de réalisation de l'invention. Un tel équipement terminal est configuré pour recevoir et traiter un flux de données F D codées représentatif d'une vidéo multi-vues d'une scène ainsi que pour afficher sur un dispositif d'affichage DISP, par exemple l'écran du casque HMD, n'importe quelle vue de la scène choisie par l'utilisateur UT.

Pour ce faire, l'équipement terminal UE, UE' intègre un système S, S'de navigation libre dans la vidéo multi-vues de la scène selon l'invention. Selon un premier exemple, l'équipement terminal UE comprend un dispositif 100 de construction d'une image de profondeur associée à la vue courante, un dispositif 200, 200' de décodage d'un flux de données codées représentatif de la vidéo multi-vues et un module de synthèse SYNT d'une vue choisie par l'utilisateur. Le dispositif 100 est configuré pour obtenir du flux de données F D des vecteurs de mouvement d'une image de texture associée à la vue courante par rapport à au moins une image de texture de référence, et pour compenser en mouvement au moins un bloc de l'image de profondeur à partir d'au moins un vecteur de mouvement décodé et d'au moins une image de profondeur de référence déjà construite, ladite image de profondeur de référence étant associée à une même vue que ladite image de texture de référence.

Le dispositif 100 met ainsi en oeuvre le procédé de construction d'une image de profondeur selon l'invention qui sera détaillé ci-après en relation avec la figure 7.

Le dispositif 200, 200' de décodage du flux de données codées F D représentatif de la vidéo multi-vues est configuré pour décoder des informations codées représentatives des vecteurs de mouvement de l'image de texture associée à ladite vue courante et pour transmettre au moins lesdites informations décodées au dispositif de construction 100 précité.

Le dispositif 200, 200' met ainsi en oeuvre le procédé de décodage d'un flux de données codées représentatif d'une vidéo multi-vues selon l'invention qui sera détaillé en relation avec la figure 6.

Le flux de données F D a été codé par un dispositif de codage 300, par exemple intégré à un équipement serveur ES distant qui l'a transmis par l'intermédiaire de son module d'émission- réception E/R à celui de l'équipement terminal UE ou UE' par l'intermédiaire d'un réseau de communication RC.

Le module de synthèse SYNT est configuré pour générer la vue choisie par l'utilisateur à partir des images de texture décodées et des images de profondeur construites, lorsque celle-ci ne correspond à aucune des vues de la vidéo multi-vues transmise dans le flux de données F D .

Selon un deuxième exemple de réalisation de l'invention, on considère l'équipement terminal UE' qui intègre un système de navigation libre S' dans la vidéo multi-vues comprenant le dispositif 200' de décodage d'un flux de données codées et un module de synthèse SYNT. Selon cette variante, le dispositif 200' intègre le dispositif 100 précité.

Selon un exemple de réalisation de l'invention, le dispositif de codage 300 est configuré pour coder des informations représentatives de vecteurs de mouvement d'une image de texture d'une vue courante par rapport à une image de texture de référence, obtenir une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée, compenser en mouvement au moins un bloc d'une image de profondeur associée à la vue courante, dite image de profondeur construite, à partir d'au moins un vecteur de mouvement décodé et au moins une image de profondeur de référence déjà construite, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence, évaluer ladite image de profondeur construite par comparaison avec l'image de profondeur capturée, une erreur de compensation étant obtenue ; et coder une information représentative d'un indicateur de compensation de mouvement dudit au moins un élément de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une première valeur lorsque le critère d'erreur est satisfait.

Le dispositif 300 met ainsi en oeuvre le procédé de codage selon l'invention qui sera détaillé ci-après en relation avec la figure 8.

Dans la suite, on considère un flux de données codées F D représentatif d'une vidéo multi-vues VMV, reçu par l'équipement terminal UE de la figure 5.

Dans la suite, on désigne de façon classique une image par un tableau de pixels, généralement rectangulaire. Une telle image peut associer à chaque pixel du tableau une valeur de texture ou une valeur de profondeur.

On désigne par vue, la ou les images acquises par une caméra selon un point de vue particulier de la scène. Une vue peut être représentée par une image de texture et/ou une image de profondeur, qui forment les composantes de cette vue.

Dans la suite, on se place dans le cas d'une vidéo multi-vues d'une scène SC acquise par un ensemble de caméras tel que celui de la figure 1. On considère un encodeur vidéo classique, conforme à une norme de codage, telle que HEVC par exemple, et configuré pour produire un flux de données codées F D représentatif de la vidéo multi-vues. En particulier, on suppose que cet encodage est réalisé selon le profil de type « Geometry Absent » précité. Autrement dit, seule la composante de texture TO de chaque vue V de la vidéo multi-vues est encodée dans le flux de données F D . Pour le codage, la composante de texture TO est classiquement découpée en blocs de pixels, par exemple de dimensions 16x16, 8x8, 4x4 ou autre et le codage est réalisé bloc par bloc, de façon classique. Bien sûr, l'invention n'est pas limitée à ce cas particulier et s'applique aussi à un autre découpage ou à un codage par pixel.

Lors de ce codage, l'encodeur choisit de façon connue en soi pour chaque bloc d'une image de texture courante, s'il va être codé selon un mode dit INTER, c'est-à-dire par compensation de mouvement (auquel cas une image de référence et au moins un vecteur de mouvement sont signalés dans le flux de données codés) ou selon un mode dit INTRA ou tout autre mode qui ne comporte pas de vecteur de mouvement.

Pour chaque bloc de l'image de texture courante, le ou les vecteurs de mouvement sont codés dans le flux de données F D ainsi qu'un identifiant de l'image de texture de référence ID_T R . On se place maintenant au niveau d'un équipement terminal UE, UE' et d'un dispositif 200, 200' de décodage d'un flux de données codées FD reçu par cet équipement terminal.

On présente désormais, en relation avec la figure 6, sous une forme de logigramme, un exemple de mise en oeuvre d'un procédé de décodage du flux de données F D selon un mode de réalisation de l'invention. Avantageusement, ce procédé est mis en oeuvre par le dispositif 200 ou 200' précité.

On considère une vue courante Vc et un bloc courant Bc de l'image de texture TOc associée à cette vue Vc.

Pour chaque bloc Bc, un décodage par exemple de type FIEVC est effectué. Il comprend en 60 la lecture et le décodage d'éléments de syntaxe compris dans les informations du flux F D . Classiquement, ces éléments de syntaxe comprennent un mode de prédiction MP utilisé pour le bloc courant Bc. Ce mode peut être de type INTER, INTRA ou autre. A partir de cette information de mode de prédiction, on déduit si un vecteur de mouvement MV est codé dans le flux F D .

On suppose par exemple que le mode de prédiction MP est de type INTER. En 61, le vecteur de mouvement MV associé au bloc courant Bc est décodé. Ce vecteur de mouvement est représentatif d'un mouvement de l'image de texture TOc courante par rapport à une image de référence T R .

En 62, une information représentative d'un identifiant ID_T R de cette image de texture de référence est décodée.

Avantageusement, ces informations de vecteur de mouvement MV et d'identifiant d'image de texture de référence sont stockées dans une mémoire M2 puis transmises en 64 au dispositif 100 de construction d'une image de profondeur associée à la vue courante Vc selon l'invention. Ce dispositif 100 peut être intégré ou non au dispositif de décodage 200, 200', comme illustré par la figure 5 déjà décrite.

Optionnellement, un indicateur Fcm de compensation de mouvement est décodé en 63. Il peut prendre au moins une première valeur VI par exemple égale à 1 pour indiquer qu'une compensation en mouvement de l'image de profondeur Pc est à mettre en oeuvre ou une deuxième valeur V2 par exemple égale à zéro pour indiquer au contraire qu'il ne faut pas mettre en oeuvre de compensation de mouvement. Cet indicateur, lorsqu'il est décodé, est ensuite transmis en 64 au dispositif 100 selon l'invention.

On présente maintenant, en relation avec la figure 7, sous une forme de logigramme, un exemple de mise en oeuvre d'un procédé de construction d'une image de profondeur d'une vue courante selon un mode de réalisation de l'invention. Avantageusement, ce procédé est mis en oeuvre par le dispositif 100 précité.

Comme aucune information de profondeur n'a été transmise dans le flux de données F D pour la vue courante Vc, il s'agit de la construire. On décrit le procédé selon l'invention pour le bloc courant : En 70, le vecteur de mouvement MV du bloc courant Bc est obtenu. Par exemple, il est reçu du dispositif de décodage 200 ou 200'. En 71, l'identifiant ID_T R de l'image de texture de référence utilisée pour estimer ledit vecteur de mouvement MV est obtenu. Par exemple, il est reçu du dispositif de décodage 200 ou 200'. Cette image de texture de référence est associée à une vue V R . Optionnellement, en 72, un indicateur Fcm de compensation de mouvement est obtenu et stocké en mémoire Ml. Par exemple, il est codé dans le flux F D et reçu du dispositif de décodage 200 ou 200'. Il est positionné à une première valeur prédéterminée, par exemple égale à 1, pour indiquer que le bloc de profondeur BPc co-localisé avec le bloc de texture courant Bc doit être compensé en mouvement et à une deuxième valeur prédéterminée, par exemple égale à 0, pour indiquer au contraire que le bloc de profondeur BPc ne doit pas être compensé en mouvement.

Optionnellement, en 73, un champ d'information Mij est renseigné en fonction des informations précédemment obtenues. Il est par exemple positionné à 1 lorsqu'un vecteur de mouvement MV a été obtenu pour le bloc courant et lorsque l'indicateur Fcm est reçu avec la première valeur prédéterminée.

En 74, on décide en fonction des informations reçues si le bloc de profondeur courant BPc est compensé en mouvement. Une telle décision est prise sur la base de l'obtention ou non d'un vecteur de mouvement MV pour le bloc de texture courant Bc ou lorsque l'indicateur Fcm a été reçu, sur la base de la valeur de l'indicateur Fcm ou encore, dans le mode de réalisation où le champ d'informations Mij est utilisé, sur la base de la valeur de Mij.

En 75, une image de profondeur de référence P R est obtenue à partir de l'identifiant ID_T R . Il s'agit d'une image de profondeur précédemment construite par le dispositif 100 selon l'invention et en particulier celle qui est associée à la même vue V R que l'image de texture de référence T R .

En 76, on construit le bloc BPc courant de l'image de profondeur Pc par compensation en mouvement CM du bloc de l'image de profondeur de référence P R pointé par le vecteur de mouvement MV.

Les étapes qui viennent d'être décrites sont répétées pour les blocs suivants de l'image de profondeur, et ce jusqu'au dernier.

A cet égard, on note que deux modes de fonctionnement sont possibles. Selon un premier mode, dit au fil de l'eau, le dispositif 100 construit l'image de profondeur Pc de la vue courante Vc bloc par bloc, au fur et à mesure qu'il obtient les informations décodées du flux de données F D de la part du dispositif 200 ou 200'. Selon un deuxième mode de réalisation de l'invention, il attend d'avoir reçu toutes les informations décodées pour construire l'image de profondeur courante P. En relation avec la figure 8, on présente maintenant, sous une forme de logigramme, un exemple de mise en oeuvre d'un procédé de codage d'une image de profondeur d'une vue courante selon un mode de réalisation de l'invention. Avantageusement, ce procédé est mis en oeuvre par le dispositif 300 précité.

Selon ce mode de réalisation de l'invention, on suppose que les images de profondeurs originales PO des vues de la vidéo multi-vues ont été capturées, mais qu'elles ne sont pas codées dans le flux de données F D .

On considère en particulier une vue courante Vc et le codage de son image de texture originale TOc à un instant donné t.

Comme précédemment, on suppose que cette image est découpée en blocs et que les blocs de l'image sont balayés selon un ordre de balayage prédéterminé, par exemple un mode dit zigzag (qui correspond à l'ordre lexicographique).

On détaille le codage du bloc courant Bc de l'image de texture TOc associée à la vue courante Vc.

En 80, on détermine le mode de prédiction MP à utiliser pour ce bloc courant. Autrement dit, le dispositif d'encodage choisit si le bloc courant de l'image va être codé en mode INTER, par compensation de mouvement (auquel cas une image de texture de référence T R et un vecteur de mouvement MV sont signalés dans le flux de données codées F D ) ou en mode intra ou tout autre mode qui ne comporte pas de vecteur de mouvement.

On suppose dans la suite que le mode de prédiction MP choisi pour le bloc courant Bc est un mode pour lequel un vecteur de mouvement MV est calculé.

En 81, le vecteur de mouvement MV du bloc courant est calculé par rapport à une image de texture de référence T R . Elle est associée à une vue V R . En 81, le vecteur de mouvement est codé et l'information codée obtenue est insérée dans un flux de données codées F D .

En 82, une image de profondeur originale POc est capturée par une caméra de profondeur associée à la caméra agencée pour capturer l'image de texture TOc de la vue courante Vc.

En 83, une image de profondeur précédemment construite, dite image de profondeur de référence P R , et associée à la même vue V R que l'image de texture de référence T R est obtenue, par exemple d'une mémoire M3.

En 84, un bloc BPc correspondant au bloc courant Bc dans une image de profondeur Pc associée à la vue courante Vc est construit par compensation en mouvement du bloc de l'image de profondeur de référence P R pointé par le vecteur de mouvement MV.

Autrement dit, selon ce mode de réalisation de l'invention, si le bloc courant de texture est codé par compensation de mouvement, le dispositif de codage effectue une compensation de mouvement identique du bloc de profondeur co-localisé dans l'image de profondeur associée à la même vue Vc. Ainsi, si le bloc de texture courant BTOc, de cordonnées (i,j) dans l'image de texture TOc à l'instant t est compensé en mouvement par un bloc de l'image de référence T R à l'instant t', avec un vecteur de mouvement de composantes (MVx,MVy), alors le dispositif de codage effectue en 84 une compensation en mouvement du bloc de profondeur BPc, de cordonnées (i,j) de l'image de profondeur courante Pc à l'aide du bloc de profondeur BP R de l'image de profondeur P R associée à l'image de texture de référence TO R à l'instant t', avec le vecteur de mouvement de composantes (MVx,MVy). De la sorte, on applique la même compensation de mouvement au bloc de profondeur courant BPc qu'au bloc de texture co-localisé associé à la même vue courante Vc et on obtient ainsi un bloc de profondeur compensé.

En 85, le bloc BPc compensé est évalué par comparaison avec le bloc co-localisé en i,j de l'image de profondeur originale POc. Par exemple, une quantité d'énergie d'un résidu entre l'image de profondeur POc effectivement capturée et l'image de profondeur compensée en mouvement PCc est calculée.

En 86, un indicateur Fcm de compensation de mouvement est déterminé en fonction d'un positionnement de cette quantité d'énergie par rapport à un seuil prédéterminé. Avantageusement, si elle est inférieure au seuil, l'indicateur est positionné à la première valeur, par exemple égale à 1, pour indiquer que le bloc courant est compensé en mouvement pour sa composante de profondeur. Sinon l'indicateur est positionné à une deuxième valeur, par exemple égale à 0, ce qui signifie que le bloc courant n'est pas compensé en mouvement pour sa composante de profondeur. L'indicateur Fcm est ensuite codé dans le flux F D .

On note que l'indicateur de profondeur Fcm n'est pas transmis pour un bloc de profondeur associé à un bloc de texture qui n'a pas de vecteur de mouvement (par exemple, parce qu'il est codé selon le mode intra).

Les étapes qui viennent d'être décrites sont répétées pour chacun des blocs de l'image de texture de la vue courante.

Une fois encodé, le flux de données F D obtenu est par exemple stocké en mémoire M3 ou transmis dans un signal à un ou plusieurs équipements terminaux par l'intermédiaire du réseau de communication RC.

On détaille maintenant, en relation avec la figure 9 un exemple de décodage d'un flux de données représentatif d'une vidéo multi-vues et de construction d'une image de profondeur Pc d'une vue courante Vc de cette vidéo selon un mode de réalisation de l'invention.

Un flux de données F D est obtenu. Par exemple, il est reçu par le dispositif de décodage 200 par l'intermédiaire du réseau de communication RC. On suppose que l'image de profondeur associée à la même vue courante Vc n'est pas codée dans le flux F D . On détaille d'abord le bloc DEC de décodage de l'image de texture courante Te et d'informations relatives au traitement de l'image de profondeur courante Pc. On considère que l'image de texture courante Te est par exemple découpée en blocs. Les blocs de cette image sont traités selon un ordre de traitement prédéterminé, par exemple en mode zigzag, qui correspond à l'ordre lexicographique. Pour un bloc courant Bc de l'image de texture courante TOc, les informations codées dans le flux de données F D sont lues en 60-63. En particulier, le mode de prédiction MP de ce bloc, le cas échéant le vecteur de mouvement MV et un identifiant ID_T R de l'image de texture de référence sont obtenus. Selon un mode de réalisation de l'invention, un indicateur Fcm de compensation de mouvement du bloc co-localisé dans l'image de profondeur Pc est lu.

Le bloc courant Bc de l'image de texture courante Te est décodé.

On considère maintenant le bloc CNST de construction du bloc co-localisé de l'image de profondeur courante Pc.

Selon un premier cas, en 70, un vecteur de mouvement MV du bloc de texture courant est obtenu, ainsi qu'en 71, un identifiant ID_T R de l'image de texture de référence. En 74, un champ d'information Mij est renseigné à une première valeur indiquant que le bloc de profondeur courant doit être compensé en mouvement. Le vecteur de mouvement et l'identifiant de l'image de texture de référence sont stockés en mémoire.

Selon un deuxième cas, aucun vecteur de mouvement MV du bloc de texture courant n'est obtenu, ni d'identifiant d'image de texture de référence. En 74, le champ d'information Mij est renseigné à une deuxième valeur indiquant que le bloc de profondeur courant ne doit pas être compensé en mouvement.

Optionnellement un identifiant Fcm de compensation de mouvement est aussi obtenu en 72 et stocké en mémoire. Comme précédemment décrit, selon un mode de réalisation particulier, il a été avantageusement positionné par le dispositif d'encodage selon l'invention à une première ou une deuxième valeur, en fonction d'un critère de performance de la compensation de mouvement du bloc de profondeur évalué par rapport à une image de profondeur originale capturée par une caméra de profondeur, mais non transmise.

En 73, une décision de mettre en oeuvre ou de ne pas mettre en oeuvre une compensation de mouvement du bloc de profondeur courant est prise en fonction des informations obtenues précédemment. On note que l'indicateur Fcm prévaut, c'est-à-dire que, lorsqu'il a été obtenu, la décision est prise en fonction de sa valeur. Autrement dit, si l'indicateur est positionné à la première valeur, il est décidé de compenser en mouvement le bloc de profondeur courant. Sinon, la décision dépend de la présence ou de l'absence de vecteur de mouvement pour le bloc de texture co-localisé associé à la vue courante. Lorsqu'il a été décidé de compenser le bloc de profondeur courant, une image de profondeur de référence P R est obtenue en 75 à partir de l'identifiant ID_T R de l'image de texture de référence. Il s'agit de l'image de profondeur associée à la même vue que l'image de texture de référence T R .

En 76, le bloc de profondeur courant BPc est compensé en mouvement selon une technique classique de compensation de mouvement, à partir du bloc de l'image de profondeur de référence co-localisé avec celui pointé par le vecteur de mouvement dans l'image de texture de référence T R . Lorsqu'au contraire il a été décidé de ne pas compenser en mouvement le bloc de profondeur courante BPc, une estimation classique est mise en oeuvre en 77 par exemple à l'aide d'une des techniques DERS, IVDE ou GANet citées précédemment.

Les opérations décrites sont répétées pour chacun des blocs de l'image de texture courante Te puis de l'image de profondeur courante Pc de la vue courante, puis la vue suivante est traitée, etc.

Les images de textures décodées T D et les images de profondeur construites Pc NST S ont ensuite avantageusement exploitées par un module de synthèse pour générer, par exemple selon une technique de type DIBR, la vue choisie par l'utilisateur UT du système de restitution d'une vidéo multi-vues selon l'invention, par exemple en fonction de son point de vue de la scène.

On présente maintenant, en relation avec la figure 10, un exemple de structure matérielle d'un dispositif 100 de construction d'une image de profondeur d'une vue courante d'une vidéo multi- vues, comprenant au moins un module d'obtention de vecteurs de mouvement d'une image de texture associée à la vue courante, à partir d'un flux de données codées représentatif de la vidéo multi-vues, et un module de compensation en mouvement d'au moins un élément de ladite image de profondeur, configuré pour être mis en oeuvre lorsqu'au moins un vecteur de mouvement a été obtenu pour ledit au moins un élément.

Avantageusement, le dispositif 100 comprend en outre l'obtention d'un indicateur de compensation de mouvement à partir d'une information codée dans le flux, ledit indicateur étant associé audit au moins un élément de l'image de profondeur et un module de décision de mettre en oeuvre ladite compensation de mouvement lorsque l'indicateur est positionné à une première valeur. Avantageusement il comprend aussi un module d'obtention d'un identifiant de l'image de texture de référence et un module d'obtention de l'image de profondeur de référence P R à partir dudit identifiant.

Le terme « module » peut correspondre aussi bien à un composant logiciel qu'à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui-même à un ou plusieurs programmes ou sous-programmes d'ordinateur ou de manière plus générale à tout élément d'un programme apte à mettre en oeuvre une fonction ou un ensemble de fonctions. Plus généralement, un tel dispositif 100 comprend une mémoire vive 103 (par exemple une mémoire RAM), une unité de traitement 102 équipée par exemple d'un processeur, et pilotée par un programme d'ordinateur Pgl, représentatif des modules d'obtention, de décision et de compensation en mouvement, stocké dans une mémoire morte 101 (par exemple une mémoire ROM ou un disque dur). A l’initialisation, les instructions de code du programme d’ordinateur sont par exemple chargées dans la mémoire vive 103 avant d’être exécutées par le processeur de l’unité de traitement 102. La mémoire vive 103 peut aussi contenir le vecteur de mouvement, l'identifiant de l'image de texture de référence, l'indicateur de compensation en mouvement, etc.

La figure 10 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser le dispositif 100 afin qu'il effectue les étapes du procédé de construction d'une image de profondeur tel que détaillé ci-dessus, en relation avec les figures 7 et 9 dans ses différents modes de réalisation. En effet, ces étapes peuvent être réalisées indifféremment sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).

Dans le cas où le dispositif 100 est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une carte SD, une clé USB, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.

Les différents modes de réalisation ont été décrits ci-avant en relation avec un dispositif 100 intégré dans un équipement terminal, par exemple un téléphone mobile ou un casque de réalité virtuelle.

On présente aussi, en relation avec la figure 11, un exemple de structure matérielle d'un dispositif de décodage 200, 200' d'un flux de données codées selon l'invention, comprenant au moins un module de décodage d'informations codées représentatives des vecteurs de mouvement d'une image de texture associée à ladite vue courante, un module de transmission desdites informations à un dispositif 100 précité de construction d'une image de profondeur associée à la vue courante. Avantageusement, le dispositif 200, 200' comprend un module de décodage d'informations codées représentatives d'un identifiant d'une image de texture de référence associée aux vecteurs de mouvement et un module de décodage d'un indicateur de compensation en mouvement d'au moins un élément de l'image de profondeur.

En alternative, le module de transmission est remplacé par le dispositif 100 précité. Autrement dit, le dispositif 100 est intégré au dispositif 200' et connecté à son module de décodage. Le terme « module » peut correspondre aussi bien à un composant logiciel qu'à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui-même à un ou plusieurs programmes ou sous-programmes d'ordinateur ou de manière plus générale à tout élément d'un programme apte à mettre en oeuvre une fonction ou un ensemble de fonctions.

Plus généralement, un tel dispositif 200, 200' comprend une mémoire vive 203 (par exemple une mémoire RAM), une unité de traitement 202 équipée par exemple d’un processeur, et pilotée par un programme d’ordinateur Pg2, représentatif des modules de décodage et de transmission stocké dans une mémoire morte 201 (par exemple une mémoire ROM ou un disque dur). A l’initialisation, les instructions de code du programme d’ordinateur sont par exemple chargées dans la mémoire vive 203 avant d’être exécutées par le processeur de l’unité de traitement 202. La mémoire vive 203 peut aussi contenir les informations décodées.

La figure 11 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser le dispositif 200, 200' afin qu'il effectue les étapes du procédé de décodage tel que détaillé ci-dessus, en relation avec les figures 6 et 9 dans ses différents modes de réalisation. En effet, ces étapes peuvent être réalisées indifféremment sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).

Dans le cas où le dispositif 200, 200' est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une carte SD, une clé USB, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.

On présente enfin, en relation avec la figure 12, un exemple de structure matérielle d'un dispositif 300 de codage d'un flux de données représentatif d'une vidéo multi-vues, comprenant un module de détermination de vecteurs de mouvement d'une image de texture associée à une vue de la vidéo multi-vues, dite vue courante, par rapport à une image de texture de référence, un module de codage des vecteurs de mouvement dans le flux de données, un module d'obtention d'une image de profondeur associée à ladite vue courante, capturée par une caméra de profondeur, dite image de profondeur capturée, un module de compensation en mouvement d'au moins un bloc d'une image de profondeur associée à la vue courante, dite image de profondeur construite, configuré pour être mis en oeuvre lorsqu'au moins un vecteur de mouvement a été obtenu pour au moins un bloc de l'image de texture, ladite compensation en mouvement étant mise en oeuvre à partir dudit au moins un vecteur de mouvement et d'au moins une image de profondeur de référence disponible, ladite image de profondeur de référence étant associée à la même vue que ladite image de texture de référence ; un module d'évaluation d'un bloc compensé en mouvement de ladite image de profondeur reconstruite par comparaison avec le bloc co-localisé de l'image de profondeur capturée, une erreur de compensation étant obtenue et un module de codage d'une information représentative d'un indicateur de compensation de mouvement dudit au moins un bloc de ladite image de profondeur en fonction d'un critère d'erreur prédéterminé, ledit indicateur étant positionné à une valeur prédéterminée lorsque le critère d'erreur est satisfait.

Le terme « module » peut correspondre aussi bien à un composant logiciel qu'à un composant matériel ou un ensemble de composants matériels et logiciels, un composant logiciel correspondant lui-même à un ou plusieurs programmes ou sous-programmes d'ordinateur ou de manière plus générale à tout élément d'un programme apte à mettre en oeuvre une fonction ou un ensemble de fonctions.

Plus généralement, un tel dispositif 300 comprend une mémoire vive 303 (par exemple une mémoire RAM), une unité de traitement 302 équipée par exemple d’un processeur, et pilotée par un programme d’ordinateur Pg3, représentatif des modules de codage, compensation en mouvement, évaluation et codage, stocké dans une mémoire morte 301 (par exemple une mémoire ROM ou un disque dur). A l’initialisation, les instructions de code du programme d’ordinateur sont par exemple chargées dans la mémoire vive 303 avant d’être exécutées par le processeur de l’unité de traitement 302.

La figure 12 illustre seulement une manière particulière, parmi plusieurs possibles, de réaliser le dispositif 300 afin qu'il effectue les étapes du procédé de codage d'un flux de données représentatif d'une vidéo multi-vues tel que détaillé ci-dessus, en relation avec les figures 8 et 9 dans ses différents modes de réalisation. En effet, ces étapes peuvent être réalisées indifféremment sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel).

Dans le cas où le dispositif 300 est réalisé avec une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une carte SD, une clé USB, un CD-ROM ou un DVD-ROM) ou non, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur.

L'invention qui vient d'être décrite dans ses différents modes de réalisation présente de nombreux avantages. En proposant une solution alternative aux techniques classiques d'estimation d'une image de profondeur à partir d'une ou plusieurs images de textures décodées, elle contribue à réduire la complexité du traitement d'un flux de données représentatif d'une vidéo multi-vues par un équipement terminal récepteur. Cet avantage est permis par le recours à une compensation en mouvement de l'image de profondeur d'une vue courante qui réutilise les vecteurs de mouvement transmis dans le flux de données pour l'image de texture correspondante, associée à la même vue.

De la sorte, les calculs sont considérablement simplifiés et les ressources du récepteur préservées, ce qui est particulièrement intéressant pour des équipements terminaux dits légers, comme un téléphone mobile ou un casque de réalité virtuelle, dont les ressources sont limitées.