Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LOW-LATENCY AND HIGH-REFRESH-RATE DISPLAY METHOD AND DEVICE FOR HIGH-DEFINITION MIXED-REALITY DISPLAYS
Document Type and Number:
WIPO Patent Application WO/2019/129475
Kind Code:
A1
Abstract:
The subject of the invention is in particular an image-processing device for a display (220) comprising a computer (230) and a logic circuit (235) that are separate and connected to one another by a communication bus, the computer being configured so as to transmit, in fragments, a synthetic image to the logic circuit and to trigger the successive transmission of image fragments from an external image source to the logic circuit, the logic circuit being configured so as to combine a fragment of a synthetic image received from the computer and a fragment of an image received from the external image source in order to create a fragment of a mixed image, the logic circuit furthermore being configured so as to transmit the created fragment of a mixed image to said at least one computer.

Inventors:
ZEZE THÉOPHILE (FR)
Application Number:
PCT/EP2018/083991
Publication Date:
July 04, 2019
Filing Date:
December 07, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
STARBREEZE IP LUX II S A R L (LU)
International Classes:
H04N13/344; G02B27/01; G06T19/00
Foreign References:
US20170148206A12017-05-25
US20070188522A12007-08-16
Other References:
None
Attorney, Agent or Firm:
LECOMTE & PARTNERS (LU)
Download PDF:
Claims:
REVENDICATIONS

1. Dispositif de traitement d’images pour afficheur (220), le dispositif comprenant au moins un calculateur (230) et au moins un circuit logique (235), distincts et connectés l’un à l’autre par un bus de communication, ledit au moins un calculateur étant configuré pour transmettre, par fragments, au moins une image de synthèse audit au moins un circuit logique et pour déclencher la transmission successive de fragments d’images depuis au moins une source d’images externe vers ledit au moins un circuit logique, ledit au moins un circuit logique étant configuré pour combiner au moins un fragment d’une image de synthèse reçu dudit au moins un calculateur et au moins un fragment d’une image reçu de ladite au moins une source d’images externe pour créer au moins un fragment d’une image mixte, ledit au moins un circuit logique étant en outre configuré pour transmettre ledit au moins un fragment créé d’une image mixte audit au moins un calculateur.

2. Dispositif selon la revendication 1 selon lequel ledit au moins un circuit logique comprend au moins deux mémoires tampons distinctes de type premier-entré / premier-sorti, une desdites au moins deux mémoires tampons étant configurée pour mémoriser des fragments d’images reçus dudit au moins un calculateur et l’autre desdites au moins deux mémoires tampons étant configurée pour mémoriser des fragments d’images reçus de ladite au moins une source d’images externe.

3. Dispositif selon la revendication 1 ou la revendication 2 selon lequel ledit au moins un calculateur est configuré pour recevoir des données de position et/ou d’orientation associées à des images de ladite au moins une source d’images externe et pour générer des fragments d’image de synthèse en fonction de données reçues de position et/ou d’orientation.

4. Dispositif selon l’une quelconque des revendications 1 à 3 selon lequel ledit au moins un calculateur comprend au moins un microprocesseur et au moins un coprocesseur graphique, ledit au moins un coprocesseur graphique étant configuré pour générer des fragments d’images de synthèse.

5. Dispositif selon la revendication 4 dépendante de la revendication 3 selon lequel ledit au moins un microprocesseur est un microprocesseur multi- cœurs, au moins un cœur étant associé à une fonction de réception de données de position et/ou d’orientation.

6. Dispositif selon l’une quelconque des revendications 1 à 5 comprenant ladite au moins une source d’images externe, ladite au moins une source d’images externe comprenant au moins un capteur vidéo (500) et au moins un circuit logique élémentaire (505), le circuit logique élémentaire étant configuré pour transmettre, par fragments successifs, au moins une image issue dudit au moins un capteur vidéo sur réception d’un événement prédéterminé.

7. Dispositif selon la revendication 6 comprenant en outre une interface de communication mettant un œuvre un protocole de communication de type SDI et permettant un transfert de données entre ladite au moins une source d’images externe et ledit au moins un calculateur.

8. Dispositif selon l’une quelconque des revendications 1 à 7 selon lequel le bus de communication est de type PCI Express.

9. Dispositif selon l’une quelconque des revendications 1 à 8 comprenant au moins deux calculateurs (230-1 , 230-2) et au moins deux circuits logiques (235-1 , 235-2), formant au moins deux paires comprenant chacune au moins un calculateur et au moins un circuit logique, chaque paire étant associée à au moins une source d’images externe et à au moins un écran pour effectuer un traitement d’images associé à ladite au moins une source d’images externe et audit au moins un écran associés.

10. Dispositif selon la revendication 9 selon lequel lesdits au moins deux circuits logiques sont formés dans un même composant de type FPGA.

11. Procédé de traitement d’images pour un dispositif pour afficheur (220), le dispositif comprenant au moins un calculateur (230) et au moins un circuit logique (235), distincts et connectés l’un à l’autre par un bus de communication, ledit procédé étant exécuté par ledit au moins un calculateur et comprenant les étapes suivantes :

- génération d’un événement de traitement d’une nouvelle image et transmission dudit événement à au moins une source d’images externe pour déclencher la transmission de fragments d’image depuis ladite au moins une source d’images externe vers ledit au moins un circuit logique ;

- suite à la génération dudit événement,

- génération d’au moins un fragment d’au moins une image de synthèse ;

- transmission dudit au moins un fragment généré audit circuit logique ; et

- réception dudit circuit logique d’au moins un fragment d’une image mixte, ledit au moins fragment reçu résultant d’une combinaison dudit au moins un fragment généré transmis et d’au moins un fragment d’image transmis depuis ladite au moins une source d’images externe vers ledit au moins un circuit logique.

12. Procédé selon la revendication 11 , le procédé comprenant en outre une étape de réception d’au moins une donnée de position et/ou d’orientation, ledit au moins un fragment généré d’au moins une image de synthèse étant généré en fonction de ladite au moins une donnée de position et/ou d’orientation reçue.

Description:
PROCEDE ET DISPOSITIF D’AFFICHAGE A FAIBLE LATENCE ET HAUT TAUX DE RAFRAICHISSEMENT POUR AFFICHEURS DE REALITE MIXTE

A HAUTE DEFINITION

La présente invention concerne le traitement et l’affichage d’images et plus particulièrement un procédé et un dispositif d’affichage à faible latence et haut taux de rafraîchissement pour afficheurs de réalité mixte à haute définition, par exemple pour casques de réalité augmentée.

En raison des nombreux avantages qu’ils procurent, notamment en termes d’ergonomie et d’immersion, les visiocasques utilisés pour des applications de réalité virtuelle ou de réalité augmentée, aussi appelés casques de réalité augmentée (pour des applications de réalité augmentée), casques immersifs et HMD (sigle de head-mounted display en terminologie anglo- saxonne), connaissent un développement particulièrement important depuis quelques années.

Les applications de réalité augmentée ont pour objet d’ajouter des éléments virtuels à des images réelles, produisant des images augmentées. Ces dernières peuvent résulter de l’ajout d’éléments virtuels sur une vue d’une scène réelle, un tel procédé est connu sous le nom de optical see-through en terminologie anglo-saxonne, ou d’une combinaison de plusieurs flux d’images, typiquement d’un flux d’images issu d’une ou plusieurs caméras et d’un flux d’images de synthèse, ce procédé étant connu sous le nom de video see- through en terminologie anglo-saxonne.

Du fait des mouvements généralement autorisés par le port d’un visiocasque, il est nécessaire, en pratique, de calculer en temps réel le flux d’images de synthèse selon la position de l’utilisateur et la direction observée (ou axe de visée). Le volume de calcul est d’autant plus important que la résolution des écrans d’affichage et le taux de rafraîchissement sont élevés. Il existe par exemple des casques de réalité augmentée dont les écrans d’affichage ont une résolution de 2 240 x 2 160 pixels, pour chaque œil, avec une fréquence de rafraîchissement de 90 Hz. Par ailleurs, le temps de latence entre les mouvements de l’utilisateur et l’affichage des images correspondantes (c’est-à-dire des images corrigées selon le changement de pose et de direction de l’axe de visée) doit être très faible pour une meilleure immersion et pour éviter de perturber l’oreille interne de l’utilisateur (rendant l’utilisation du visiocasque très inconfortable, voire impossible après une période de temps relativement courte).

Pour répondre à ces besoins de performances de calcul, certaines solutions utilisent une ou plusieurs unités de traitement graphique (appelées GPU, sigle de graphies Processing unit en terminologie anglo-saxonne) permettant de paralléliser certaines tâches élémentaires de façon optimale.

La figure 1 illustre un exemple d’un système de réalité augmentée mixant un flux d’images représentant une scène réelle à un flux d’images de synthèse, notamment d’un casque de réalité augmentée vu de dessus de façon schématique.

Comme illustré, le casque de réalité augmentée 100 est ici relié à un ordinateur 105 via un câble de communication 110 autorisant la transmission d’un volume de données élevé.

Le casque de réalité augmentée 100 comprend ici deux caméras vidéo 115-1 et 115-2, l’une associée à l’œil droit et l’autre à l’œil gauche, deux écrans 120-1 et 120-2 également associés à l’œil droit et à l’œil gauche, respectivement, ainsi que deux haut-parleurs 125-1 et 125-2 situés à proximité des oreilles de l’utilisateur lorsqu’il porte le casque de réalité augmentée (la tête de l’utilisateur est ici schématiquement représentée avec une forme ovale en traits pointillés). Les écrans 120-1 et 120-2 sont par exemple des écrans de type LCD (sigle de liquid crystal display en terminologie anglo-saxonne) ou OLED (acronyme de organic light-emitting diode en terminologie anglo- saxonne) ayant une résolution de 2 240 x 2 160 pixels.

Le casque de réalité augmentée 100 comprend en outre un capteur 130, par exemple un capteur à 6 degrés de liberté permettant l’obtention d’une position (abscisse, ordonnée et hauteur) dans un espace à 3 dimensions et d’une orientation (roulis, tangage, lacet) dans ce même espace à 3 dimensions. Les données issues du capteur 130 ainsi que chacun des flux d’images issus des caméras 115-1 et 115-2 sont transmis à l’ordinateur 105. Ces données permettent de générer deux flux d’images virtuelles (un pour chaque œil) liés à la position de l’utilisateur et à l’axe de visée. Les flux d’images issus des caméras 115-1 et 115-2 sont alors combinés avec les flux d’images virtuelles générés et retransmis au casque de réalité augmentée 100 pour être affichés sur les écrans 120-1 et 120-2.

L’ordinateur 105 peut comprendre un ou plusieurs GPU pour combiner les flux d’images en temps réel, par exemple selon une technique d’incrustation aussi connue sous le nom de chromakey.

Cependant, malgré la puissance des GPU récents, la résolution croissante des écrans utilisés dans les visiocasques augmente la latence. En outre, la puissance de calcul requise ne permet généralement pas l’utilisation d’un ordinateur miniaturisé, ce qui nécessite, du fait de la quantité de données échangées entre le visiocasque et l’ordinateur, l’utilisation d’un câble de communication. Ce dernier est particulièrement inconfortable pour l’utilisateur.

Il existe donc un besoin pour améliorer le traitement et l’affichage des images dans les casques de réalité augmentée et plus généralement pour les afficheurs de réalité mixte.

L’invention permet de résoudre au moins un des problèmes exposés précédemment.

L’invention a ainsi pour objet un dispositif de traitement d’images pour afficheur, le dispositif comprenant au moins un calculateur et au moins un circuit logique, distincts et connectés l’un à l’autre par un bus de communication, ledit au moins un calculateur étant configuré pour transmettre, par fragments, au moins une image de synthèse audit au moins un circuit logique et pour déclencher la transmission successive de fragments d’images depuis au moins une source d’images externe vers ledit au moins un circuit logique, ledit au moins un circuit logique étant configuré pour combiner au moins un fragment d’une image de synthèse reçu dudit au moins un calculateur et au moins un fragment d’une image reçu de ladite au moins une source d’images externe pour créer au moins un fragment d’une image mixte, ledit au moins un circuit logique étant en outre configuré pour transmettre ledit au moins un fragment créé d’une image mixte audit au moins un calculateur.

Le dispositif selon l’invention permet ainsi l’affichage d’images mixtes de haute résolution avec un haut taux de rafraîchissement et un faible temps de latence. L’invention peut en outre être mise en œuvre avec des éléments standard.

Selon un mode de réalisation particulier, ledit au moins un circuit logique comprend au moins deux mémoires tampons distinctes de type premier-entré / premier-sorti, une desdites au moins deux mémoires tampons étant configurée pour mémoriser des fragments d’images reçus dudit au moins un calculateur et l’autre desdites au moins deux mémoires tampons étant configurée pour mémoriser des fragments d’images reçus de ladite au moins une source d’images externe.

Toujours selon un mode de réalisation particulier, ledit au moins un calculateur est configuré pour recevoir des données de position et/ou d’orientation associées à des images de ladite au moins une source d’images externe et pour générer des fragments d’image de synthèse en fonction de données reçues de position et/ou d’orientation.

Toujours selon un mode de réalisation particulier, ledit au moins un calculateur comprend au moins un microprocesseur et au moins un coprocesseur graphique, ledit au moins un coprocesseur graphique étant configuré pour générer des fragments d’images de synthèse.

Toujours selon un mode de réalisation particulier, ledit au moins un microprocesseur est un microprocesseur multi-cœurs, au moins un cœur étant associé à une fonction de réception de données de position et/ou d’orientation.

Toujours selon un mode de réalisation particulier, le dispositif comprend ladite au moins une source d’images externe, ladite au moins une source d’images externe comprenant au moins un capteur vidéo et au moins un circuit logique élémentaire, le circuit logique élémentaire étant configuré pour transmettre, par fragments successifs, au moins une image issue dudit au moins un capteur vidéo sur réception d’un événement prédéterminé. Toujours selon un mode de réalisation particulier, le dispositif comprend en outre une interface de communication mettant en œuvre un protocole de communication de type SDI et permettant un transfert de données entre ladite au moins une source d’images externe et ledit au moins un calculateur.

Toujours selon un mode de réalisation particulier, le bus de communication est de type PCI Express.

Toujours selon un mode de réalisation particulier, le dispositif comprend au moins deux calculateurs et au moins deux circuits logiques, formant au moins deux paires comprenant chacune au moins un calculateur et au moins un circuit logique, chaque paire étant associée à au moins une source d’images externe et à au moins un écran pour effectuer un traitement d’images associé à ladite au moins une source d’images externe et audit au moins un écran associé.

Toujours selon un mode de réalisation particulier, lesdits au moins deux circuits logiques sont formés dans un même composant de type FPGA.

L’invention a également pour objet un procédé de traitement d’images pour un dispositif pour afficheur, le dispositif comprenant au moins un calculateur et au moins un circuit logique, distincts et connectés l’un à l’autre par un bus de communication, ledit procédé étant exécuté par ledit au moins un calculateur et comprenant les étapes suivantes :

- génération d’un événement de traitement d’une nouvelle image et transmission dudit événement à au moins une source d’images externe pour déclencher la transmission de fragments d’image depuis ladite au moins une source d’images externe vers ledit au moins un circuit logique ;

- suite à la génération dudit événement,

- génération d’au moins un fragment d’au moins une image de synthèse ;

- transmission dudit au moins un fragment généré audit circuit logique ; et

- réception dudit circuit logique d’au moins un fragment d’une image mixte, ledit au moins fragment reçu résultant d’une combinaison dudit au moins un fragment généré transmis et d’au moins un fragment d’image transmis depuis ladite au moins une source d’images externe vers ledit au moins un circuit logique.

Selon un mode de réalisation particulier, le procédé comprend en outre une étape de réception d’au moins une donnée de position et/ou d’orientation, ledit au moins un fragment généré d’au moins une image de synthèse étant généré en fonction de ladite au moins une donnée de position et/ou d’orientation reçue.

Le procédé selon l’invention permet ainsi l’affichage d’images mixtes de haute résolution avec un haut taux de rafraîchissement et un faible temps de latence. L’invention peut en outre être mise en œuvre avec des éléments standard.

L’invention a également pour objet un programme d’ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé décrit précédemment lorsque ledit programme est exécuté sur un calculateur ainsi qu’un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé décrit précédemment.

D’autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d’exemple non limitatif, au regard des dessins annexés dans lesquels :

- la figure 1 illustre un exemple d’un système de réalité augmentée mixant un flux d’images représentant une scène réelle à un flux d’images de synthèse, notamment d’un casque de réalité augmentée vu de dessus de façon schématique ;

- la figure 2 illustre schématiquement un exemple d’architecture d’un système selon l’invention pour traiter et afficher des images à haute définition dans un casque de réalité augmentée, avec une faible latence et un haut taux de rafraîchissement ;

- la figure 3 illustre certaines phases d’un exemple de mise en œuvre de l’invention ; - la figure 4 illustre schématiquement un mécanisme de gestion d’une mémoire utilisée pour stocker temporairement des fragments générés d’une image de synthèse et des fragments d’une image mixte ;

- la figure 5 illustre schématiquement l’architecture d’une partie du système illustré sur la figure 2, permettant de traiter et afficher des images à haute définition dans un casque de réalité augmentée, pour un œil, avec une faible latence et un haut taux de rafraîchissement ;

- les figures 6a, 6b, 6c et 6d illustrent un exemple de contenu de mémoires tampons d’un calculateur et d’un circuit logique programmable associé lors d’un traitement en vue de l’affichage d’une nouvelle image mixte ;

- la figure 7 illustre un exemple d’étapes mises en œuvre dans le calculateur 230-i ;

- la figure 8 illustre un exemple d’étapes mises en œuvre dans le circuit logique programmable élémentaire 505-i de la caméra vidéo 215-i ; et

- la figure 9 illustre un exemple d’étapes mises en œuvre dans le circuit logique programmable 235-i.

Selon des modes de réalisation de l’invention, le dispositif de traitement et d’affichage d’images est basé sur une architecture modulaire permettant de traiter de façon distincte ou quasi distincte des images à destination de plusieurs écrans, par exemple à destination de deux écrans correspondant à chacun des yeux. Il est de préférence basé sur des éléments standard programmables. Ces éléments peuvent notamment comprendre des calculateurs, par exemple des calculateurs miniatures intégrant des microprocesseurs multi-cœurs, et des circuits logiques programmables. A titre d’illustration, les calculateurs peuvent être au format carte de crédit pour être intégrés dans le casque de réalité augmentée ou être disposés à proximité, par exemple dans un sac, typiquement un sac à dos, comprenant une partie de l’électronique nécessaire au fonctionnement du casque de réalité augmentée et des sources électriques, par exemple une ou plusieurs batteries. La proximité des différents éléments utilisés permet notamment d’augmenter le débit des données échangées tout en réduisant la latence. Il est observé ici que l’invention peut être mise en œuvre pour traiter différents types de flux d’images, notamment pour des applications de réalité augmentée selon lesquelles des éléments virtuels sont ajoutés à des représentations de scènes réelles, des applications de virtualité augmentée selon lesquelles des éléments réels sont ajoutés à des représentations de scènes virtuelles ou encore des applications de réalité virtuelle selon lesquelles des éléments virtuels sont ajoutés à des représentations de scènes virtuelles. Ces différentes applications combinant le monde réel et le monde virtuel ou différents mondes virtuels sont, par la suite, appelées applications mixtes, les images correspondantes étant appelées images mixtes.

L’invention a ainsi pour objet de mixer en temps réel un premier flux d’images issu d’une source externe, par exemple un capteur vidéo ou un générateur d’images de synthèse, avec un second flux d’images généré en temps réel selon des caractéristiques du premier flux d’images telles que le point de vue.

La figure 2 illustre schématiquement un exemple d’architecture d’un système selon l’invention pour traiter et afficher des images à haute définition dans un casque de réalité augmentée, avec une faible latence et un haut taux de rafraîchissement.

Le système de réalité augmentée 200 comprend un casque de réalité augmentée 205 et un dispositif de calcul 210 pouvant être distinct du casque de réalité augmentée 205 ou intégré dans celui-ci.

Le casque de réalité augmentée 205 comprend notamment deux caméras vidéo 215-1 et 215-2, deux écrans 220-2 et 220-2 ainsi qu’un capteur de position et/ou orientation 225. Il est observé que les caméras vidéo 215-1 et 215-2 peuvent être distantes du casque de réalité augmentée 205. Dans ce cas, elles peuvent être asservies en mouvement au casque de réalité augmentée 205 (pour viser vers un point « observé » par l’utilisateur) ou les images affichées peuvent être déterminées par la position et/ou l’orientation des caméras vidéo 215-1 et 215-2.

Chacune des caméras vidéo 215-1 et 215-2 comprend un capteur vidéo, par exemple un capteur du type CMOS (acronyme de complementary métal oxide semiconductor en terminologie anglo-saxonne) dont la résolution peut être, à titre d’illustration, de 3 840 x 2 160 pixels (appelée résolution 4K), ainsi qu’un circuit de prétraitement de données permettant le transfert de données issues des capteurs vidéo via une interface de communication, par exemple une interface de communication mettant en œuvre un protocole de communication de type SDI (sigle de serial digital interface en terminologie anglo-saxonne).

Selon des modes de réalisation, les caméras vidéo 215-1 et 215-2 sont utilisées dans un mode appelé esclave selon lequel la caméra transmet (ou rend disponible) une image, typiquement élément par élément, par exemple ligne par ligne, suite à la réception d’un événement prédéterminé, par exemple la réception d’un événement nommé frame_event.

Les écrans 220-1 et 220-2 sont des écrans standard, typiquement des écrans de type OLED pour casque de réalité augmentée, par exemple des écrans ayant une résolution de 3 840 x 2 160 pixels et une fréquence de rafraîchissement d’au moins 90 Hz. Il est observé ici que les images acquises étant traitées pour être affichées, la résolution de ces écrans peut être différente de celle des capteurs vidéo utilisés.

Selon des modes de réalisation, le capteur de position et/ou orientation 225 est un capteur à 6 degrés de liberté permettant l’obtention d’une position (abscisse, ordonnée et hauteur) dans un espace à 3 dimensions et d’une orientation (roulis, tangage, lacet) dans ce même espace à 3 dimensions.

Comme illustré sur la figure 2, le dispositif de calcul 210 comprend notamment deux calculateurs 230-1 et 230-2 intégrant chacun, en particulier, un microprocesseur ou CPU (sigle de central Processing unit en terminologie anglo-saxonne), par exemple un microprocesseur multi-cœurs. Ces calculateurs peuvent être intégrés dans un même composant ou dans des composants distincts. Le dispositif de calcul 210 comprend en outre deux circuits logiques programmables 235-1 et 235-2, pouvant également être intégrés dans un même composant ou dans des composants distincts.

A titre d’illustration, les circuits logiques programmables 235-1 et 235-2 peuvent être du type FPGA (sigle de field-programmable gâte array en terminologie anglo-saxonne), PLD (sigle de programmable logic device en terminologie anglo-saxonne), EPLD (sigle de erasable programmable logic device en terminologie anglo-saxonne), CPLD (sigle de complex programmable logic device en terminologie anglo-saxonne), PAL (sigle de programmable array logic en terminologie anglo-saxonne) ou PLA (sigle de programmable logic array en terminologie anglo-saxonne). A des fins d’illustration, il est ici considéré que les circuits logiques programmables 235-1 et 235-2 sont de type FPGA. Ces circuits logiques programmables peuvent également être de type ASIC (acronyme de application spécifie integrated circuit en terminologie anglo- saxonne), c’est-à-dire des composants spécifiques préprogrammés.

Comme illustré, les flux d’images issus des caméras vidéo 215-1 et 215-2 sont transmis vers les circuits logiques programmables 235-1 et 235-2, respectivement, via des bus de communication autorisant un débit suffisant pour minimiser la latence. Dans des modes de réalisation selon lesquels la fréquence de rafraîchissement des écrans du casque de réalité augmentée est de 90 Hz et leur résolution est de 3 840 x 2 160, le débit de ce bus est avantageusement d’environ 2,24 GigaBtyes/s. Comme décrit précédemment, l’interface de communication peut être du type SDI.

Les calculateurs 230-1 et 230-2 et les circuits logiques programmables 235-1 et 235-2 sont ici connectés les uns aux autres par un bus à haut débit, permettant notamment le transfert de flux d’images de scènes réelles et de flux d’images mixtes ainsi que l’échange de données de contrôle, par exemple un bus de type PCI Express (PCI étant le sigle de peripheral component interconnect en terminologie anglo-saxonne), permettant par exemple des débits de 16 GigaBytes/s.

Les calculateurs 230-1 et 230-2 peuvent être connectés aux écrans 220-1 et 220-2 à l’aide de connexions vidéo standard, par exemple des câbles conformes au standard HDMI 2.0 ou Display Port 1.2, afin de transmettre les images mixtes et permettre leur affichage.

La figure 3 illustre certaines phases d’un exemple de mise en œuvre de l’invention. Selon cet exemple, les images sont traitées par fragments, chaque fragment pouvant notamment correspondre à une portion d’une ligne ou d’une colonne de l’image traitée, une ligne ou une colonne de l’image traitée ou une pluralité de lignes ou de colonnes de l’image traitée. A des fins d’illustration, il est considéré ici que chaque image est traitée par ligne.

Un événement appelé frame_event est généré par l’un des calculateurs ou, de façon synchrone, par chacun des deux calculateurs. Cet événement, référencé 300 sur la figure 3, indique le début de génération d’une nouvelle image de synthèse dans les calculateurs. Selon un mode de réalisation particulier, cet événement est transmis via le bus reliant les calculateurs et les circuits logiques programmables et est relayé par ces derniers vers les caméras vidéo.

Il est observé ici que le mécanisme décrit en référence à la figure 3 est reproduit au moins deux fois dans un dispositif tel que celui décrit en référence à la figure 2, une fois pour traiter les images devant être affichées devant l’œil gauche et une fois pour traiter les images devant être affichées devant l’œil droit.

La réception de l’événement frame_event par chaque caméra vidéo déclenche la transmission successive de fragments d’une image acquise vers une mémoire tampon du circuit logique programmable associé. La mémoire tampon est, de préférence, une mémoire de type premier-entré / premier-sorti ou FIFO (acronyme de first-in first-out en terminologie anglo-saxonne), organisée par fragments. Le transfert d’une image d’une caméra vidéo vers le circuit logique programmable associé, fragment par fragment (par exemple ligne par ligne), est effectué durant la période 305 suivant l’événement 300.

Suite à l’événement frame_event, l’image de synthèse dont une partie doit être intégrée dans une image d’une scène réelle est générée, par fragments, par exemple par lignes. Chaque fragment est ainsi généré par un calculateur, typiquement par un coprocesseur graphique de ce dernier, l’un après l’autre, durant les périodes 310-1 , 310-2, 310-3, etc. La fréquence à laquelle ces fragments sont générés est déterminée selon le nombre de fragments à générer et le temps de traitement de chaque fragment.

Après qu’un fragment ait été généré, il est transmis du calculateur l’ayant généré vers le circuit logique programmable associé à celui-ci, comme illustré avec les références 315-1 , 315-2 et 315-3. Il est par exemple mémorisé dans une mémoire tampon de type FIFO, organisée par fragments (par exemple par lignes).

Un fragment généré et reçu par le circuit logique programmable est alors traité par ce dernier avec le fragment correspondant de l’image de la scène réelle reçu du capteur, comme illustré avec les références 320-1 , 320-2, 320-3, etc., pour créer un fragment d’une image mixte II est observé que les fragments utilisés à ces fins étant ici mémorisés dans des mémoires de type FIFO, les fragments de l’image de synthèse générés par le calculateur sont synchronisés, lors de leur accès par le circuit logique programmable avec ceux de l’image de la scène réelle. Le traitement effectué par le circuit logique programmable consiste par exemple à l’insertion d’éléments d’un fragment généré dans un fragment d’image d’une scène réelle, par exemple selon une méthode de chromakey.

II est observé ici que les circuits logiques programmables peuvent être configurés pour générer un fragment d’image mixte avec des nombres différents de fragments d’une image réelle et d’une image de synthèse.

Après obtention, le fragment résultant du traitement (ou de la combinaison) d’un fragment généré avec un fragment de l’image d’une scène réelle est transmis par le circuit logique programmable au calculateur associé, comme illustré avec les références 325-1 , 325-2 et 325-3.

L’image reconstituée dans le calculateur, typiquement dans une mémoire tampon de celui-ci, est ensuite transmise à l’écran associé pour être affichée (référence 330).

II est observé ici que la mémoire tampon utilisée pour stocker des fragments d’une image de synthèse peut être la même que celle utilisée pour mémoriser l’image mixte (résultant de la combinaison d’une image de synthèse et d’une image d’une scène réelle) du fait du traitement par fragments. En effet, après avoir été transmis, un fragment généré de l’image de synthèse peut être remplacé par un fragment de l’image mixte.

La figure 4 illustre un tel mécanisme de gestion de mémoire, selon lequel un fragment généré de l’image de synthèse est transmis vers le circuit logique programmable, par exemple de type FPGA, pour être combiné avec le fragment correspondant d’une image d’une scène réelle, le résultat de cette combinaison, c’est-à-dire un fragment de l’image mixte, étant ensuite mémorisé à la place du fragment généré précédemment transmis. La flèche sur la représentation de l’image en mémoire indique l’ordre de traitement des fragments (par exemple des lignes).

La figure 5 illustre schématiquement l’architecture d’une partie du système illustré sur la figure 2, permettant de traiter et afficher des images à haute définition dans un casque de réalité augmentée, pour un œil, avec une faible latence et un haut taux de rafraîchissement.

Il est observé ici que l’architecture illustrée sur la figure 5 permettant de traiter des images pour un affichage sur un écran peut être utilisée sans être dupliquée si le système de réalité mixte ne fait appel qu’à un seul écran. De même, il peut être répliqué autant de fois que le système de réalité mixte comprend d’écrans.

Les éléments permettant de traiter et afficher des images à haute définition dans un casque de réalité augmentée, pour un œil, sont notamment ici la caméra vidéo 215-i (l’index i étant ici et par la suite égal à 1 ou 2 selon que le système concerne l’œil gauche ou l’œil droit), le capteur de position et/ou orientation 225, le circuit logique programmable 235-i et le calculateur 230-i.

Il est observé ici que la caméra vidéo 215-i pourrait être remplacée par une autre source de flux d’images dont chaque image pourrait être obtenue sur requêtes (par exemple une interruption ou sur réception d’un événement de type frame_event), par exemple une source d’images de synthèse ou un dispositif de stockage stockant un ou plusieurs flux d’images. Selon des modes de réalisation, des informations de position et/ou d’orientation peuvent être associées à chacune de ces images (ou à des groupes d’images) pour permettre la génération d’un flux d’images correspondant dans le calculateur 230-i.

Comme illustré, la caméra vidéo 215-i comprend un capteur vidéo

500-i à haute définition ainsi qu’un circuit logique programmable élémentaire 505-i, par exemple de type FPGA, permettant de transmettre des données issues du capteur vidéo 500-i à un dispositif distant selon un format prédéterminé. Comme décrit précédemment, la caméra vidéo 215-i est, selon des modes de réalisation, utilisée selon un mode esclave selon lequel les données issues du capteur vidéo 500-i sont transmises via une interface de communication suite à la réception d’un événement particulier, par exemple l’événement nommé frame_event.

Selon l’exemple illustré, les données issues du capteur vidéo 500-i sont transmises à une première mémoire tampon 510-i du circuit logique programmable 235-i, par exemple via une interface de communication mettant en œuvre un protocole de communication de type SDI. L’interface de communication utilisée est une interface haut-débit.

Le capteur de position et/ou d’orientation 225, de préférence assujetti mécaniquement à la caméra vidéo 215-i ou à un support de celle-ci, transmet des données de position et/ou d’orientation au calculateur 230-i, de préférence selon 6 degrés de liberté comme décrit précédemment. Ces informations de position et/ou d’orientation peuvent, par exemple, permettre à ce dernier de générer des images de synthèse selon un point de vue ajusté en temps réel.

Comme illustré, outre la première mémoire tampon 510-i configurée pour recevoir des fragments d’images de la caméra vidéo 215-i, le circuit logique programmable 235-i comprend une seconde mémoire tampon 515-i configurée pour recevoir des fragments d’images de synthèse générées par le calculateur 230-i.

Les mémoires tampons 510-i et 515-i sont de préférence similaires. Il s’agit par exemple de mémoire de type FIFO dont les entrées et les sorties sont des fragments d’images, par exemple des lignes d’images. Par conséquent, un même emplacement dans ces mémoires correspond à un même emplacement dans les images dont des fragments sont mémorisés (en considérant des images de mêmes dimensions). Dans un mode de réalisation particulier, chacune des mémoires tampons 510-i et 515-i permet de stocker quelques fragments d’images (i.e. quelques fragments d’une image de synthèse ou d’une image reçue de la caméra vidéo 215-i, par exemple entre 2 et 10 lignes d’une image. Le circuit logique programmable 235-i comprend en outre un module de calcul 520-i permettant de combiner des fragments d’images appartenant à au moins deux images différentes en fragments d’une seule image. Selon des modes de réalisation particuliers, le module de calcul 520-i est configuré pour permettre différents modes de combinaison de fragments, le choix du mode étant par exemple paramétré par le calculateur 230-i. Un de ces modes peut correspondre au chromakey. Il existe d’autres modes de combinaison d’images, par exemple la fusion (ou blending en terminologie anglo-saxonne). Comme décrit précédemment, le nombre de fragments obtenus de la mémoire tampon 510-i et le nombre de fragments obtenus de la mémoire tampon 515-i pour produire un ou plusieurs fragments d’une image mixte peuvent être différents. Ces nombres sont typiquement gérés par le module de calcul 520-i selon le mode de combinaison utilisé.

Par ailleurs, le circuit logique programmable 235-i comprend un module de communication 525-i, par exemple de type PCI Express, pour échanger des données avec, notamment, le calculateur 230-i. Le module de communication 525-i permet, en particulier, de transférer des données reçues du calculateur 230-i dans la mémoire tampon 515-i et de transférer vers le calculateur 230-i des données résultant d’un traitement effectué dans le module de calcul 520-i.

Il est observé ici que pour traiter des données relatives aux deux yeux d’un utilisateur, des données peuvent être échangées entre les calculateurs 230-1 et 230-2 et/ou les circuits logiques programmables 235-1 et 235-2, par exemple pour prendre en compte les données communes entre les images visualisées par chaque œil ou entre les images utilisées pour générer ces dernières. Dans un souci de clarté, ces connexions ne sont pas représentées sur la figure 5.

Comme le circuit logique programmable 235-i, le calculateur 230-i comprend un module de communication 530-i, par exemple de type PCI Express. Il est similaire ou compatible avec celui du circuit logique programmable 235-i pour permettre un échange de données entre ces entités. Le calculateur 230-i comprend en outre au moins une mémoire tampon 535-i pour stocker des fragments d’images de synthèse générés par le calculateur 230-i en fonction de données de position et/ou d’orientation reçues du capteur 225 et pour stocker des fragments d’images mixtes reçus du circuit logique programmable 235-i. La transmission de fragments d’images stockés dans cette mémoire tampon vers l’écran d’affichage 220-i peut être effectuée, par exemple, par le contrôleur vidéo de sortie 540-i.

A titre d’illustration, la mémoire tampon 535-i peut stocker des fragments d’images tels que ceux décrits en référence à la figure 4.

Le calculateur 230-i comprend un ou plusieurs microprocesseurs 545-i, par exemple un ou plusieurs microprocesseurs multi-cœurs, dans lesquels sont exécutés un ou plusieurs systèmes d’exploitation ou OS (sigle de operating System en terminologie anglo-saxonne) avec leur noyau 550-i et des pilotes 555-i (couramment appelés drivers) prenant en charge les transferts de données vers d’autres modules, permettant l’exécution d’applications 560-i.

Une ou plusieurs applications sont notamment exécutées par au moins un cœur pour contrôler la génération d’images de synthèse, au moins une partie des calculs nécessaires à la génération de ces images étant avantageusement effectuée dans un ou plusieurs coprocesseurs graphiques 565-i comme illustré sur la figure 5 par le lien entre le ou les microprocesseurs 545-i et le ou les coprocesseurs graphiques 565-i.

Le calculateur 230-i peut également comprendre un contrôleur vidéo d’entrée 570-i pour recevoir des fragments d’images, par exemple des fragments d’images de synthèse générés par une autre source. Ces fragments peuvent venir en complément ou à la place de ceux générés par le calculateur 230-i. Ils peuvent être stockés dans la mémoire tampon 535-i afin d’être traités de la même façon que les fragments générés par le calculateur 230-i.

Selon des modes de réalisation particuliers, des processus particuliers sont assignés à un ou plusieurs cœurs du ou des microprocesseurs du calculateur 230-i afin que ces processus ne soient pas perturbés par des interruptions visant d’autres fonctions. De tels processus sont, par exemple, liés à la réception de données de position et/ou d’orientation, afin que cette réception ne soit pas perturbée par d’autres processus, notamment la génération d’images de synthèse, et que des données de position et/ou orientation récentes puissent être utilisées.

Toujours selon des modes de réalisation particuliers, les processus de traitement et d’affichage d’images mixtes sont initiés par les calculateurs, c’est-à-dire par un calculateur pour un œil et par un autre calculateur pour l’autre œil, ces processeurs étant synchronisés et exécutant les mêmes processus en parallèle.

Comme décrit en référence à la figure 3, lorsqu’une image doit être traitée et affichée, le calculateur 230-i génère un événement de type framejevent qui est transmis au circuit logique programmable 235-i, ce dernier le relayant, par exemple sous forme d’une interruption, à la caméra vidéo 215-i, comme représenté avec les références © et ©'.

Suite à cet événement, le calculateur 230-i génère des fragments d’une image de synthèse, par exemple des lignes d’image qui sont stockées dans la mémoire tampon 535-i (référence ®). Parallèlement, l’événement frame_event déclenche, dans la caméra vidéo 215-i, la transmission de fragments d’une image obtenue par le capteur vidéo 500-i vers la mémoire tampon 510-i du circuit logique programmable 235-i (référence ®’).

Un tel transfert peut avantageusement être effectué selon un mode de transfert de données connu sous le nom de DMA (sigle de direct memory access en terminologie anglo-saxonne), permettant un transfert rapide des données. Selon ce mode de transmission, les données sont transférées directement par un contrôleur de mémoire vers une mémoire cible, sans intervention d’un microprocesseur.

Lorsqu’au moins un fragment d’image de synthèse est stocké dans la mémoire tampon 535-i du calculateur 230-i, un fragment d’image est transmis depuis cette mémoire tampon vers la mémoire tampon 515-i du circuit logique programmable 235-i, comme représenté avec la référence ©.

A nouveau, ce transfert utilise avantageusement le mode DMA.

Lorsque des fragments d’images sont disponibles dans les mémoires tampons 510-i et 515-i, au moins un fragment d’image de chacune de ces mémoires tampons est transmis au module de calcul 520-i pour générer au moins un fragment d’image mixte (référence ( D). Comme décrit précédemment, le nombre de fragments d’image obtenus des mémoires tampons 510-i et 515-i pour générer un ou plusieurs fragments d’image mixte dépend du traitement effectué.

A nouveau, l’utilisation de mémoires tampons de type FIFO, pour les mémoires tampons 510-i et 515-i permet d’assurer très simplement une synchronisation entre les fragments d’image.

Le ou les fragments d’image mixte obtenus dans le module de calcul 520-i sont ensuite transmis vers la mémoire tampon 535-i du calculateur 230-i

(référence ®), par exemple à l’emplacement du fragment d’image de synthèse générée utilisé pour l’obtention du fragment d’image mixte à mémoriser, comme décrit en référence à la figure 4. A nouveau, un mode de transfert de données de type DMA est, de préférence, utilisé.

Lorsque tous les fragments de l’image de synthèse générés dans le calculateur 230-i ont été traités (i.e. transmis au circuit logique programmable 235-i) et que tous les fragments d’image mixte ont été reçus par le calculateur 230-i, l’image mixte peut être affichée (référence ( D). Selon un mode de réalisation particulier, l’affichage sur l’écran 220-i peut être géré, de façon classique, par le contrôleur vidéo de sortie 540-i.

Comme décrit précédemment, l’architecture illustrée sur la figure 5 peut être dupliquée pour traiter et afficher les images de l’œil gauche et de l’œil droit ou peut être répliquée autant de fois que le système comprend d’écrans.

Les figures 6a, 6b, 6c et 6d illustrent un exemple de contenu de mémoires tampons d’un calculateur et d’un circuit logique programmable associé lors d’un traitement en vue de l’affichage d’une nouvelle image mixte.

A titre d’illustration, la mémoire tampon 535-i du calculateur 230-i et les mémoires tampons 510-i et 515-i du circuit logique programmable 235-i sont ici considérées.

Les figures 6a, 6b, 6c et 6d correspondent à quatre instants successifs. Ainsi, par exemple, la figure 6a représente le contenu des mémoires tampons à un instant t, la figure 6b représente le contenu de ces mémoires tampons à un instant t+1, la figure 6c représente le contenu de ces mémoires tampons à un instant t+2 et la figure 6d représente le contenu de ces mémoires tampons à un instant t+3.

Dans un souci de clarté, il est considéré ici que les images sont traitées par lignes.

Selon cet exemple, la mémoire tampon 535-i peut stocker au moins une image complète (i.e. une image virtuelle ou une image mixte) tandis que les mémoires tampons 510-i et 515-i ne peuvent stocker que quelques lignes d’images.

Comme illustré sur la figure 6a, après qu’un événement de type frame_event ait été généré, des lignes d’une image de synthèse sont générées et stockées dans la mémoire tampon 535-i du calculateur 230-i. Trois lignes générées pour l’image de synthèse référencée imag_S(k), numérotées 1 à 3, sont ici mémorisées.

En parallèle, des lignes d’une image réelle, obtenue d’une caméra et correspondant à l’image de synthèse générée (partageant ici le même index k), sont transférées vers la mémoire tampon 510-i du circuit logique programmable 235-i. Dans l’exemple illustré, deux lignes numérotées 1 et 2 de l’image réelle référencée imag_R(k) sont mémorisées dans la mémoire tampon 510-i.

A cet instant, aucune ligne correspondant à l’image de synthèse imag_S(k) n’a encore été transférée vers la mémoire tampon 515-i du circuit logique programmable 235-i. La mémoire tampon 515-i est donc vide.

A un instant suivant, comme illustré sur la figure 6b, une quatrième ligne de l’image de synthèse imag_S(k) a été générée et stockée dans la mémoire tampon 535-i du calculateur 230-i qui stocke alors quatre lignes de l’image de synthèse imag_S(k).

De même, deux nouvelles lignes de l’image réelle imag_R(k) ont été transférées depuis la caméra vidéo vers la mémoire tampon 510-i qui contient alors quatre lignes de l’image réelle imag_R(k).

Par ailleurs, la première ligne de l’image de synthèse imag_S(k) a été transférée depuis la mémoire tampon 535-i du calculateur 230-i vers la mémoire tampon 515-i du circuit logique programmable 235-i. Les mémoires tampons 510-i et 515-i contenant des lignes équivalentes de l’image réelle et de l’image de synthèse (i.e. la ligne 1 ), ces lignes peuvent être traitées pour créer une ligne d’une image mixte.

Comme illustré sur la figure 6c, la ligne créée de l’image mixte, référencée imag_M(k), est mémorisée dans la mémoire tampon 535-i du calculateur 230-i, à la place de la ligne de l’image de synthèse qui a été utilisée à ces fins (i.e. la ligne 1 ).

Les lignes de l’image de synthèse et de l’image réelle utilisées pour créer cette ligne de l’image mixte ont disparu des mémoires tampons 510-i et 515-i (selon le principe des mémoires de type FIFO). Par ailleurs, de nouvelles lignes de l’image de synthèse et de l’image réelle ont été transférées vers les mémoires tampons 510-i et 515-i, respectivement.

Dans cet exemple, aucune nouvelle ligne de l’image de synthèse n’a été mémorisée dans la mémoire tampon 535-i du calculateur 230-i.

A nouveau, les mémoires tampons 510-i et 515-i contenant des lignes équivalentes de l’image réelle et de l’image de synthèse, respectivement, ces lignes peuvent être traitées pour créer une ou plusieurs lignes d’une image mixte.

Ainsi, comme illustré sur la figure 6d, la seconde ligne créée de l’image mixte est mémorisée dans la mémoire tampon 535-i du calculateur 230- i, à la place de la ligne de l’image de synthèse qui a été utilisée à ces fins. Les lignes de l’image de synthèse et de l’image réelle utilisées pour créer cette ligne de l’image mixte disparaissent des mémoires tampons 510-i et 515-i et de nouvelles lignes de l’image de synthèse et de l’image réelle ont été transférées vers les mémoires tampons 510-i et 515-i, respectivement.

Dans cet exemple, une nouvelle ligne de l’image de synthèse a été mémorisée dans la mémoire tampon 535-i du calculateur 230-i.

Le processus se poursuit ainsi jusqu’à ce que toutes les lignes de l’image mixte aient été créées.

La figure 7 illustre un exemple d’étapes mises en œuvre dans le calculateur 230-i. Comme illustré, une première étape (étape 700) a pour objet d’initialiser les variables r et n à la valeur de la variable k qui représente l’index de la dernière image de synthèse générée. La variable n représente un index d’images de synthèse dont des fragments doivent être transmis au circuit logique programmable et la variable r représente un index d’images mixtes dont des fragments doivent être mémorisés dans le calculateur.

Lorsqu’un événement de type frame_event est détecté (étape 705), la variable / est initialisée à la valeur un et la variable k est incrémentée de un (étape 710). La variable / représente un index de fragments dans l’image de synthèse qui est générée.

Le fragment / de l’image de synthèse imag_S(k) est alors généré (étape 715) puis stocké dans la mémoire tampon 535-i du calculateur 230-i (étape 720). Dans une étape suivante, un test est effectué pour déterminer si l’index / a atteint sa valeur maximale ( maxL ), c’est-à-dire pour déterminer si l’index / correspond au dernier fragment de l’image de synthèse qui est générée (étape 725).

Si l’index / n’a pas atteint sa valeur maximale ( maxL ), l’index / est incrémenté de un (étape 730) et les étapes 715 et 720 sont répétées pour générer et stocker un nouveau fragment d’image de synthèse.

Dans le cas contraire, si l’index / a atteint sa valeur maximale (maxL), un test est effectué pour déterminer si la mémoire tampon 535-i du calculateur 230-i contient un espace libre (étape 735) permettant de générer et stocker de nouveaux fragments d’images de synthèse.

Parallèlement, lorsqu’au moins un fragment d’une image de synthèse a été généré et stocké (étapes 715 et 720), la variable m est initialisée à la valeur un et la variable n est incrémentée de un (étape 740). La variable m représente un index de fragments dans l’image de synthèse générée qui est transmise au circuit logique programmable 235-i.

Dans une étape suivante, le fragment m de l’image imag_S(n) est transmis au circuit logique programmable 235-i (étape 745) pour être stocké dans la mémoire tampon 515-i. Un test est ensuite effectué pour déterminer si l’index m a atteint sa valeur maximale ( maxL ), c’est-à-dire pour déterminer si l’index m correspond au dernier fragment de l’image de synthèse à transmettre (étape 750).

Si l’index m n’a pas atteint sa valeur maximale ( maxL ), l’index m est incrémenté de un (étape 755) et l’étape 745 est répétée pour transmettre le fragment suivant.

Si, au contraire, l’index m a atteint sa valeur maximale (maxL), un test est effectué pour déterminer s’il existe des fragments d’une image de synthèse suivante à transmettre (étape 760). S’il existe des fragments d’une image de synthèse suivante à transmettre, les étapes 740 à 755 sont répétées.

Parallèlement encore, si au moins un fragment d’une image de synthèse a été transféré à la mémoire tampon 515-i du circuit logique 235-i, la variable q est initialisée à la valeur un et la variable r est incrémentée de un (étape 765). La variable q représente un index de fragments dans une image mixte qui doit être reçue du circuit logique programmable 235-i.

Dans une étape suivante, lorsque le fragment q de l’image mixte imag_M(r) est reçu du circuit logique programmable 235-i, il est stocké dans la mémoire tampon 535-i du calculateur 230-i à l’emplacement défini par les variables q et r (étape 770).

Un test est ensuite effectué pour déterminer si l’index q a atteint sa valeur maximale (maxL), c’est-à-dire pour déterminer si l’index q correspond au dernier fragment de l’image mixte à recevoir (étape 775).

Si l’index q n’a pas atteint sa valeur maximale (maxL), l’index q est incrémenté de un (étape 780) et l’étape 770 est répétée pour recevoir le fragment suivant.

Si, au contraire, l’index q a atteint sa valeur maximale (maxL), un événement est généré pour afficher l’image mixte reçue (étape 785) et un test est effectué pour déterminer s’il existe des fragments d’une image mixte suivante à recevoir (étape 790). S’il existe des fragments d’une image mixte suivante à recevoir, les étapes 765 à 785 sont répétées.

La figure 8 illustre un exemple d’étapes mises en œuvre dans le circuit logique programmable élémentaire 505-i de la caméra vidéo 215-i. Lorsqu’un événement de type frame_event est détecté (étape 800), les fragments de la dernière image acquise par le capteur vidéo 500-1 , représentant une scène réelle, sont transmis, de façon successive, au circuit logique programmable 235-i pour être mémorisés dans la mémoire tampon 510-i (étape 805).

La figure 9 illustre un exemple d’étapes mises en œuvre dans le circuit logique programmable 235-i.

Comme illustré, dès qu’il est déterminé qu’un fragment d’une image de synthèse est mémorisé dans la mémoire tampon 515-i et qu’un fragment d’une image réelle est mémorisé dans la mémoire tampon 510-i (étape 900), au moins un fragment de chacune de ces images, correspondant l’un à l’autre, est utilisé par un module de calcul pour les combiner et créer un fragment d’une image mixte (étape 905). Ce fragment d’image mixte est ensuite transmis au calculateur 230-i comme décrit précédemment (étape 910).

Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l’invention pourra appliquer des modifications dans la description précédente. La présente invention ne se limite pas aux formes de réalisation décrites, d'autres variantes et combinaisons de caractéristiques sont possibles.

En particulier, alors que l’invention a été décrite en référence à l’utilisation d’un calculateur et d’un circuit logique programmable associé, d’autres configurations équivalentes peuvent être mises en œuvre.

La présente invention a été décrite et illustrée dans la présente description détaillée en référence aux figures jointes. Toutefois, la présente invention ne se limite pas aux formes de réalisation présentées. D'autres variantes et modes de réalisation peuvent être déduits et mis en œuvre par la personne compétente dans le domaine de l’invention à la lecture de la présente description et des figures annexées.

Dans les revendications, le terme « comporter » n'exclut pas d'autres éléments ou d'autres étapes. L'article indéfini « un » n’exclut pas le pluriel. Un seul processeur ou plusieurs autres unités peuvent être utilisés pour mettre en œuvre l'invention. Les différentes caractéristiques présentées et/ou revendiquées peuvent être avantageusement combinées. Leur présence dans la description ou dans des revendications dépendantes différentes n'exclut pas, en effet, la possibilité de les combiner. Les signes de référence ne sauraient être compris comme limitant la portée de l'invention.