Dispositif permettant de se diriger de façon interactive et fluide dans un film numérique compressé et logiciel gérant ce dispositif
La présente invention est relative à un dispositif permettant de se diriger de façon interactive et fluide dans un film numérique compressé ainsi qu'à un logiciel pour sa mise en œuvre.
Actuellement, on utilise de plus en plus souvent des films pour présenter par exemple un appartement, un voyage touristique ou faire une démonstration de matériel. Pour cela, on met généralement en œuvre un appareil d'affichage vidéo tel que, par exemple, une télévision ou un moniteur d'ordinateur, mais un spectateur ou utilisateur ou utilisateur ne peut intervenir sur le déroulement des images.
Or, il apparaît que, de plus en plus souvent, l'utilisateur souhaite pouvoir agir sur le déroulement d'un tel film soit en en modifiant la vitesse de défilement pour lui permettre d'accélérer ou de ralentir la succession des images, c'est à dire d'avancer dans le film à la cadence qu'il souhaite et en toute fluidité, soit en lui conférant la possibilité d'opter pour des choix directionnels dans le film.
Ainsi, dans le cas de la visite d'un appartement, il s'agit de laisser à un utili- sateur la possibilité de voir une pièce déterminée avant la salle à manger ou de retourner dans la chambre avant d'aller dans la cuisine.
Dans le cas plus général de la visite d'un site, il s'agit de permettre à un utilisateur de choisir sa direction à certaines intersections : à titre d'exemple, d'aller tout droit, à gauche ou à droite. Par ailleurs, dans les salles de gymnastique, il peut être approprié d'afficher devant un utilisateur d'un appareil de cardio-training (bicyclettes, tapis, rameur, steppeur, etc.), un parcours en forêt ou en campagne par exemple, afin de le motiver dans son effort.
Aussi un des buts de la présente invention est-il de fournir un dispositif pour se diriger de façon interactive dans un film, qui permet à un utilisateur de modifier comme bon lui semble la vitesse de déroulement de la succession des images d'un film.
Un autre but de l'invention est de fournir un tel dispositif qui permet plusieurs visionnages d'un même film sans que la succession des images soit toujours iden- tique.
Ces buts, ainsi que d'autres qui apparaîtront par la suite, sont atteints par un dispositif permettant de se diriger de façon interactive et fluide dans un film numérique compressé, comprenant un ordinateur muni d'une sortie son, d'une sortie vidéo, toutes deux reliées à un système de visualisation, ainsi que d'une entrée
reliée à un moyen pour contrôler la direction en série avec un moyen pour contrôler la vitesse de déroulement d'un tel film, lequel dispositif est caractérisé, selon la présente invention, par le fait que le moyen pour contrôler la direction consiste en un certain nombre de boutons correspondant chacun à une direction dans l'espace, chacun d'eux permettant à l'ordinateur de traiter la direction choisie par un utilisateur.
De préférence, le moyen pour contrôler la vitesse est une manette dont le maniement par l'utilisateur permet de faire défiler le film à une vitesse variable.
Avantageusement, le moyen pour contrôler la vitesse est un capteur de vi- tesse directement relié à un appareil de cardio-training.
Selon une première variante de réalisation, le capteur de vitesse comporte une roulette qui est en contact avec la partie mobile de l'appareil de cardio-training et qui transmet sa vitesse de rotation à une roue dentée située entre un émetteur infrarouge et un récepteur infrarouge. Selon une deuxième variante de réalisation, le capteur de vitesse comporte un aimant qui passe à intervalle régulier en face d'une bobine à induction fournissant une information à l'ordinateur qui en déduit la vitesse.
Selon une troisième variante de réalisation, le capteur de vitesse comporte un capteur optique coopérant avec la partie mobile de l'appareil de cardio-training. La présente invention est également relative à un programme ou logiciel qui est caractérisé par le fait qu'il comprend une étape d'acquisition de la vitesse et de la direction souhaitées par un utilisateur, une première succession d'étapes pour déterminer la vitesse de défilement des images et simultanément une seconde succession d'étapes pour déterminer le cheminement à partir de la vitesse et de la direction souhaitées, et une étape d'affichage de la succession d'images ainsi déterminées.
De préférence, on utilise un fichier de configuration contenant les informations suivantes :
- nom du fichier numérique à ouvrir correspondant au parcours filmé, - informations sur la nature de ce parcours et des embranchements, ainsi que sur les choix possibles de direction,
- vitesse à laquelle a été tourné le film,
- récupération des informations relatives au type de capteur de vitesse utilisé.
Avantageusement, on calcule la vitesse instantanée d'un utilisateur comme la moyenne des n vitesses moyennes Vi précédentes.
De préférence, à partir des informations connues de la vitesse de déplacement de la caméra lors du tournage du film et du nombre d'images par seconde de la caméra lors du tournage du film, on détermine, en fonction de la vitesse que l'on cherche à simuler, le saut S correspondant au nombre d'images à sauter en chaque image affichée et le temps T correspondant à l'intervalle de temps entre deux images affichées.
Avantageusement, on affiche en surimpression sur le film, quelques secondes avant chaque intersection du parcours filmé, des flèches pour indiquer les directions à choisir.
La description qui va suivre, et qui ne présente aucun caractère limitatif, doit être lue en regard des figures annexées, parmi lesquelles :
- la figure 1 représente un synoptique d'un dispositif pour se diriger de façon interactive dans un film selon la présente invention ;
- la figure 2 représente un ordinogramme du logiciel pour mettre en œuvre le dispositif selon la figure 1 ; et,
- la figure 3 est un exemple de schéma directionnel pour un parcours ou cheminement. Un dispositif pour se diriger de façon interactive dans un film numérique compressé selon la présente invention comprend, comme représenté à la figure 1 , un ordinateur 1 muni, d'une part, d'une sortie son 2 et d'une sortie vidéo 3, toutes deux reliées à un système de visualisation 4, et, d'autre part, d'une entrée 5 reliée à un moyen pour contrôler la direction 6 en série avec un moyen pour contrôler la vitesse 7 de déroulement d'un film affiché.
Le système de visualisation 4 est, par exemple, un écran de télévision, un moniteur d'ordinateur, un écran à plasma ou à cristaux liquides, et plus généralement tout système de restitution d'images qui permet d'afficher les images d'un film, par exemple tourné en extérieur, en facilitant l'immersion visuelle d'un utilisateur. L'ordinateur 1 est muni d'un système de codage-décodage dit « CODEC » pour la décompression d'images numériques. Le « CODEC » est choisi notamment parmi les systèmes connus tel que le MJPEG (Motion Joint Picture Expert Group), le MPEG (Motion Picture Expert Group).
Ces différents « CODEC » peuvent être utilisés avec ou non une accélération matérielle. Dans la pratique, on utilise pour la décompression d'images, en général soit un processeur généraliste très puissant, soit une carte spécifique dédiée à la décompression d'images. L'ordinateur 1 doit également permettre le stockage du film numérique. En particulier les supports suivants sont utilisables : disque dur, disque optique compact (CD-Rom), vidéodisque numérique (DVD).
Quant au moyen pour contrôler la direction 6, il peut consister en un certain nombre de boutons ou manettes correspondant chacun à une direction dans l'espace. Le nombre minimal de boutons est de trois : un bouton « à gauche », un bouton « à droite » et un bouton « tout droit ». La pression sur un de ces boutons permet à l'ordinateur 1 de mémoriser la direction choisie par l'utilisateur.
Ainsi, quelques secondes avant chaque intersection du parcours filmé, l'ordinateur commande l'affichage en surimpression du film de flèches pour informer l'utilisateur qu'il va devoir choisir une direction pour continuer sa progression : il y a autant de flèches affichées que de direction possible et celles-ci sont orientées selon la direction qu'elles indiquent.
Le moyen pour contrôler la vitesse 7 est une manette dont le maniement par un utilisateur permet de faire défiler le film à une vitesse variable que celui-ci dé- termine directement ou indirectement.
Il peut aussi s'agir d'un capteur de vitesse directement relié à un appareil de cardio-training.
Selon une première variante de réalisation, ce capteur de vitesse comporte une roulette qui est en contact avec la partie mobile de l'appareil de cardio-training et qui transmet sa vitesse de rotation à une roue dentée située entre un émetteur infrarouge et un récepteur infrarouge. Un tel capteur peut être dénommé capteur à roulette.
Selon une deuxième variante de réalisation, ce capteur de vitesse comporte un aimant qui passe à intervalle régulier en face d'une bobine à induction fournis- sant une information à l'ordinateur 1 qui en déduit la vitesse. Un tel capteur peut être dénommé capteur magnétique.
Selon une troisième variante de réalisation, ce capteur de vitesse comporte un capteur optique qui coopère avec la partie mobile de l'appareil de cardio- training : par exemple, cette partie mobile peut être constituée par un tapis
comportant des traits qui sont disposés à intervalles réguliers et qui seront lus par le capteur optique.
L'ordinateur 1 comprend un logiciel qui charge le film sélectionné par un utilisateur, reçoit les informations émises par le capteur de vitesse 7, gère le dialogue avec l'utilisateur en affichant les images du film à la bonne vitesse et selon les choix directionnels de l'utilisateur. Ce logiciel doit avoir un comportement temps réel pour ne pas engendrer de saccades d'images qui seraient déplaisantes à l'œil : la vitesse d'avancement simulée doit donc être la plus fluide possible.
Ce logiciel, dont la figure 2 représente l'ordinogramme, utilise un fichier de configuration contenant les informations suivantes :
- nom du fichier numérique à ouvrir correspondant au parcours filmé,
- informations sur la nature de ce parcours et des embranchements, ainsi que sur les choix possibles de direction,
- vitesse à laquelle a été tourné le film, - récupération des informations relatives au type de capteur de vitesse utilisé :
- caractéristiques de la manette (cas de la manette),
- rayon de la roulette du capteur de vitesse (cas du capteur à roulette), - caractéristiques du capteur magnétique (cas du capteur magnétique), L'ordinateur 1 doit mémoriser l'information d'une vitesse instantanée au moyen d'un des trois capteurs ci-dessus. Selon un mode de réalisation préféré de la présente invention, le capteur consiste en une roulette dont l'axe de rotation est couplé à de l'électronique provenant d'une souris du commerce. La rotation de la roulette entraîne une rotation du pointeur selon l'axe des X. Pour ce mode de réali¬ sation préféré, la vitesse instantanée Vi est calculée par la méthode décrite ci- dessous.
On supposera que : - R est le rayon de la roulette.
- nb_pixels est le nombre de pixels parcourus par le curseur souris depuis le cycle précédent.
- nb_pixels_pour_un_tour est le nombre de pixels parcourus pour un tour complet de la roulette.
- T est le temps de cycle.
- nb_radians est le nombre de radians parcourus par la roulette au cours du temps T.
Dans ces conditions, la vitesse instantanée est déterminée au moyen de la formule suivante : Vi = (nb_radians x R) / T, car l'abscisse curviligne vaut (nb_radians x R) et avec : nb_radians = (nb_pixels x 2 π) / (nb_pixels_pour_un_tour). La vitesse instantanée de l'utilisateur est donc :
Vi = (nb_pixels x 2 πR) / (nb_pixels_pour_un_tour x T)
Cette vitesse instantanée Vi, qui peut également provenir d'une des autres techniques de capture de vitesse décrites plus haut, est mémorisée et on détermine une vitesse moyenne avec les n vitesses instantanées précédentes : on obtient ainsi un filtrage passe-bas de la vitesse instantanée (dans la pratique n est égal à 5, ce qui donne un compromis très satisfaisant filtrage/temps de réponse).
Comme déjà mentionné, l'ordinateur 1 comprend un « CODEC » de décompression vidéo. Cette technologie offre en particulier les trois avantages ci-après :
- temps de décompression moyen d'une image quasi-constant, - accès indexé à n'importe quelle image du film,
- possibilité d'afficher des images à une cadence supérieure au standard de télévision : dans la pratique, on peut monter à 50 images/seconde.
Pour créer une vitesse de défilement ou de déroulement variable, on joue sur les deux paramètres suivants : - T : temps entre l'affichage consécutif de deux images successives du parcours,
- S : nombre d'images à sauter entre chaque image affichée. Pour calculer le temps T, on supposera que :
- dt_film est l'intervalle de temps entre deux images lors du tournage du film,
- v_film est la vitesse à laquelle a été tourné le film,
- v est la vitesse que l'on cherche à simuler.
Dans un premier temps, on considère que S = 1 , c'est-à-dire que l'on veut simuler une vitesse sans faire de saut d'images dans le film.
On a donc la succession d'équations suivantes : v = dx / T dans laquelle dx est un déplacement élémentaire, v_film = (dx_film / dt_film), mais dx_fiim est égal à dx puisque le déplacement élémentaire est le même si l'on ne saute pas d'image (S=1).
En conséquence : dx = v_film x dt_film et v = (v_film x dt_film) / T, d'où la valeur de T :
T = (v_film x dt_film) / v Dans la pratique, avec une caméra au standard CCIR (Comité Consultatif
International de la Radiotélévision), la valeur dt_fi!m est de 40 millisecondes (ms).
Mais cette formule donnant T n'est pas très satisfaisante, car si v augmente fortement par rapport à v_film, alors T diminue fortement comme cela est le cas lorsque l'on veut simuler une vitesse de 80 km/h alors que le film a été tourné à 5 km/h.
Il existe donc un seuil T_SEUIL en dessous duquel on ne peut plus diminuer T. Dans la pratique, T_SEUIL est d'environ 10 ms.
Pour néanmoins simuler de très grandes vitesses, on saute des images par rapport au film initial. On utilise pour cela un algorithme récursif (présenté ci- dessous sous forme DESCARTES) pour calculer le saut S et le temps T :
INITIALISATION : S = 1 , TJNITIAL = T (calculé par la formule précédente).
TANT QUE (T < T_SEUIL) FAIRE
S = S + 1
T = TJNITIAL x S FIN FAIRE FIN TANT QUE
Le calcul de l'index de la prochaine image à afficher débute par une phase d'initialisation.
Le logiciel mémorise la logique du parcours, ainsi que l'ordre dans lequel sont stockés les « bouts de parcours » à l'intérieur du fichier. En outre, le logiciel doit aussi mémoriser, pour chaque « bout de parcours », le nombre d'images qui le composent, ainsi que l'index de l'image de départ dans le fichier total. Ainsi, chaque
image du film numérisé est affectée d'un index correspondant à la position de l'image dans ce film.
Afin d'expliquer au mieux le traitement du choix directionnel par le logiciel, il convient de prendre l'exemple simple représenté à la figure 3.
Selon cet exemple, le parcours filmé comprend 5 « bouts de parcours » dont, le logiciel, lors de la phase d'initialisation, mémorise la logique, à savoir :
P1 vers P4 : à gauche
P2 vers P5 : tout droit
P2 vers P3 : à droite
P3 vers P2 : à droite
P3 vers P1 : tout droit
P4 vers P2 : tout droit
P4 vers P1 : à gauche
P5 vers P4 : à droite
De plus, lors de la phase d'initialisation, le logiciel mémorise l'ordre dans lequel sont stockés les «bouts de parcours» à l'intérieur du fichier (avi).
Exemple de fichier parcours
Le logiciel mémorise, pour chaque «bout de parcours», le nombre d'images qui le composent ainsi que l'image de départ dans le fichier total.
L'algorithme pour calculer la prochaine image à afficher est le suivant, étant convenu que :
- P étant le parcours courant,
- P_G, le parcours qui correspond à un virage à gauche après le parcours courant,
- P_TD, le parcours qui correspond au fait d'aller tout droit après le parcours courant,
- P_D, le parcours qui correspond à un virage à droite après le parcours courant, (remarque : P_G, P_TD et P_D peuvent ne pas être définis).
FAIRE indexjmage = index_image_precedente + S
FIN FAIRE
SI (indexjmage > nombreJmage_du parcours_courant)
SI choix_utilisateur = AJ3AUCHE indexjmage = index debut( P_G)
FIN SI
SI choix_utilisateur = TOUT_DROIT indexjmage = index debut(P_TD)
FIN SI
SI choix_utilisateur = AJDROITE indexjmage = index debut(P_D)
FIN SI FIN SI
Quant au tournage du film, il est nécessaire de prendre en compte les impératifs suivants : le film doit être le plus fluide possible, avec des déplacements de caméras stables, c'est-à-dire exempt de saut, de variations visibles de trajectoires, de vibrations. De telles conditions doivent être totalement remplies, car le film sera par la suite rejoué en vitesse plus ou moins accélérée.
Comme aura pu le comprendre l'homme du métier, grâce à la présente invention, le film défilera en fonction de l'effort de l'utilisateur qui pourra également choisir son chemin, évitant ainsi toute lassitude et toute passivité.