Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MODULATION OF CURSOR POSITION IN VIDEO DATA FOR A COMPUTER SCREEN
Document Type and Number:
WIPO Patent Application WO/2005/031556
Kind Code:
A1
Abstract:
The invention relates to the modulation of the cursor position in video data for a computer screen. The invention consists of: a central processing unit (CPU) comprising an interface (2) for a pointing peripheral (1), which can establish displacement data (D-DATA) with said peripheral; a video card (5) which can supply image data to a visual reproduction peripheral (6); and a memory element which can execute an operating system (OS). The aforementioned operating system supports: (i) a pointing control function (3) which can transform the displacement data (D-DATA) provided by the interface (2) into cursor displacement data (CD-DATA), and (ii) a video control function (4) which can receive video data (I-DATA) and cursor position data in order to produce image data including the cursor (IC-DATA). The aforementioned central unit (CPU) comprises a cursor modulation program (7) which can be actuated in order to interact with the pointing control function (3) and the video control function (4), such as to provide modified cursor position data (MCP-DATA) in accordance with a pre-determined perceptual-type principle taking account of the cursor position.

Inventors:
LECUYER ANATOLE (FR)
ETIENNE LAURENT (FR)
ARNALDI BRUNO (FR)
Application Number:
PCT/FR2004/002419
Publication Date:
April 07, 2005
Filing Date:
September 24, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INST NAT RECH INF AUTOMAT (FR)
INSA INST NAT DES SCIENCES APP (FR)
LECUYER ANATOLE (FR)
ETIENNE LAURENT (FR)
ARNALDI BRUNO (FR)
International Classes:
G06F3/0481; (IPC1-7): G06F3/033
Domestic Patent References:
WO2002023322A12002-03-21
WO1993022758A11993-11-11
Foreign References:
US5963191A1999-10-05
US5808601A1998-09-15
EP0670541A21995-09-06
EP0665489A21995-08-02
EP0524462A21993-01-27
US5973689A1999-10-26
US5186629A1993-02-16
Attorney, Agent or Firm:
Rousset, Jean-claude (36 avenue Hoche, Paris, FR)
Download PDF:
Claims:
Revendications
1. Unité centrale d'ordinateur (CPU) comprenant une interface (2) pour périphérique de pointage (1), capable d'établir avec celuici des données (DDATA) de déplacement, une carte vidéo (5), capable de fournir des données d'image à un périphérique de restitution visuelle (6), ainsi qu'une mémoire capable d'exécuter un système d'exploitation (OS), lequel supporte d'une part, une fonction de gestion de pointage (3), capable de transformer les données de déplacement (DDATA) fournies par l'interface (2) en des données de déplacement de curseur (CDDATA), et d'autre part, une fonction de gestion vidéo (4), capable de recevoir des données vidéo (IDATA) et des données de position de curseur pour produire des données d'image incluant le curseur (ICDATA), caractérisée en ce que ladite unité centrale (CPU) comprend un programme de modula tion de curseur (7), susceptible d'tre actionné pour interagir avec la fonction de gestion de pointage (3) et la fonction de gestion vidéo (4), pour fournir des données de position de curseur modifiées (MCPDATA) selon une loi prédéterminée de type perceptif, prenant en compte la position du curseur.
2. Unité centrale (CPU) selon la revendication 1, dans laquelle ledit programme de modulation de curseur (7) est capable de modifier les données de position de curseur (NCP DATA) selon une loi choisie parmi plusieurs lois différentes prédéterminées.
3. Unité centrale selon l'une des revendications 1 ou 2, dans laquelle ladite loi prédéterminée dépend au moins en partie de la position du curseur.
4. Unité centrale selon la revendication 3, dans laquelle ladite loi prédéterminée est constituée de données associées à la position du curseur.
5. Unité centrale selon la revendication 4, dans laquelle lesdites données associées sont générées aléatoirement.
6. Unité centrale selon la revendication 4, dans laquelle lesdites données associées prennent en compte des données vidéo.
7. Unité centrale d'ordinateur selon la revendication 6, dans laquelle les données vidéo sont des données d'informations graphiques (IGDATA).
8. Unité centrale selon l'une des revendications 6 et 7, dans laquelle lesdites données associées prennent en compte des attributs de couleur de données vidéo, en particulier l'attribut niveau de gris.
9. Unité centrale selon la revendication 4, dans laquelle lesdites données associées sont calculées.
10. Unité centrale selon la revendication 9, dans laquelle lesdites données associées sont calculées à partir d'une loi mathématique par exemple une loi gaussienne.
11. Unité centrale selon l'une des revendications 9 ou 10, dans laquelle lesdites données associées sont calculées à partir de données de positions préalablement choisies.
12. Unité centrale selon la revendication 11, dans laquelle lesdites données associées sont calculées à partir des données de position d'au moins un point préalablement choisi.
13. Unité centrale selon l'une des revendications précéden tes, dans laquelle ladite loi prédéterminée comprend l'ajout aux données de position de curseur d'un complément algébrique préalablement choisi.
14. Unité centrale selon la revendication 13, dans laquelle ledit complément algébrique prend alternativement des valeurs préalablement choisies.
15. Unité centrale selon la revendication 13, dans laquelle ladite loi prédéterminée fixe les données de position de curseur modifiées (MCPDATA) conformément à des données de position préalablement choisies.
16. Unité centrale selon la revendication 15, dans laquelle lesdites données de position préalablement choisies définis sent une zone et un point du périphérique de restitution visuelle.
17. Unité centrale selon l'une des revendications 13 à 16, dans laquelle le complément algébrique tient compte de positions antérieures du curseur.
18. Unité centrale selon l'une des revendications 13 à 17, dans laquelle le complément algébrique tient compte d'un paramètre temporel.
19. Programmeproduit capable d'exécuter le programme de modulation de curseur caractéristique d'une unité centrale selon l'une des revendications précédentes.
Description:
Modulation de position de curseur dans les données vidéo pour écran d'ordinateur.

L'invention concerne une unité centrale d'ordinateur et plus particulièrement les composants matériels et logiciels qui assurent la restitution visuelle de mouvements exécutés par l'utilisateur.

Classiquement, une unité centrale dispose d'une interface, à laquelle est relié un dispositif de pointage manipulé par l'utilisateur, le plus souvent une souris, qui communique avec le système d'exploitation, exécuté dans une mémoire de l'unité centrale, pour traduire le mouvement de l'utilisateur en un mouvement de curseur affiché sur un périphérique de restitution visuelle, couramment un écran, connecté par l'intermédiaire d'une carte vidéo intégrée à l'unité cen- trale. Pour ce faire, le système d'exploitation supporte d'une part, une fonction de gestion de pointage qui trans- forme des données de déplacement transmises par l'interface en des données de position de curseur, et d'autre part une fonction de gestion vidéo capable de recevoir des données vidéo et ces données de position de curseur pour produire des données d'image incluant le curseur.

Le principe de ce dispositif est de rendre le déplacement du curseur tel qu'affiché à l'écran le plus conforme possible au mouvement du dispositif de pointage, par exemple une souris, manipulé par l'utilisateur. Le mouvement du curseur s'effectue donc généralement dans la mme direction et le mme sens que le mouvement du dispositif de pointage. Le déplacement du curseur est typiquement proportionnel à celui du dispositif de pointage.

Le but de l'invention est de parfaire la perception que

l'utilisateur a du contenu de la restitution visuelle en rendant compte d'éventuels reliefs, obstacles ou autres effets.

Pour ce faire, l'invention prévoit de modifier le mouvement du curseur affiché à l'écran par rapport à celui du disposi- tif de pointage.

L'invention prévoit donc d'inclure dans l'unité centrale un programme de modulation de curseur, susceptible d'tre actionné pour interagir avec la fonction de gestion de pointage et la fonction de gestion vidéo, pour fournir des données de position de curseur modifiées selon une loi prédéterminée de type perceptif, prenant en compte la position du curseur.

D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels : - la figure 1 est un schéma d'une unité centrale selon l'invention représentant notamment les données transmi- ses entre les composants et/ou les fonctions de l'unité centrale, - la figure 1A est un schéma plus détaillé de l'unité centrale de la figure 1, - la figure 2 est un organigramme qui illustre le fonctionnement du programme de modulation de curseur, - les figures 2A et 2B sont deux modes de réalisation de l'opération 202 de la figure 2,

- la figure 3 est un organigramme détaillant l'opération 206 de la figure 2 pour une loi prédéterminée, - la figure 4 détaille l'opération 306 de la figure 3, - la figure 5 est un exemple de réalisation de l'opération 408 de l'organigramme de la figure 4, - les figures 6,7, 8,9, 10 et 11 sont des organigram- mes qui illustrent l'opération 206 de la figure 2 pour différentes lois prédéterminées, - la figure 9A est un exemple de réalisation de l'opération 902 de la figure 9, - la figure 10A est un exemple de réalisation de l'opération 1002 de la figure 10, et - la figure 11A est un exemple de réalisation de l'opération 1102 de la figure 11.

Les dessins annexés pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant.

L'unité centrale d'ordinateur CPU selon l'invention comprend (figure 1) de façon classique une interface 2 capable d'tre reliée à un périphérique de pointage 1, le plus souvent une souris, manipulé par l'utilisateur, une carte vidéo 5, connectée à un périphérique de restitution visuelle 6, couramment un écran, qui affiche des données d'image incluant un curseur IC-DATA. Elle contient dans une mémoire un système d'exploitation OS qui supporte d'une part, une fonction de gestion de pointage 3 et d'autre part, une fonction de gestion vidéo 4. La fonction de gestion de pointage 3 reçoit

de l'interface 2 des données de déplacement D-DATA, relatives au mouvement de la souris 1, qu'elle transforme en des données de déplacement de curseur CD-DATA. La fonction de gestion vidéo 4 reçoit des données d'image I-DATA, par exemple d'un programme applicatif, et des données de position de curseur, et transmet à la carte vidéo 5 des données d'image incluant le curseur IC-DATA. La fonction de gestion vidéo 4 est également capable de fournir à la fonction de gestion de pointage 3 des données de position actuelle de curseur CCP-DATA.

L'unité centrale d'ordinateur CPU selon l'invention comprend en particulier (figure 1) un programme de modulation de curseur 7, exécuté dans la mémoire de l'unité centrale d'ordinateur CPU, capable de recevoir de la fonction de gestion de pointage 3 les données de déplacement de curseur CD-DATA et des données de nouvelle position de curseur NCP- DATA, afin d'établir, selon une loi prédéterminée choisie, et de transmettre à la fonction de gestion vidéo 4, des données de position de curseur modifiées MCP-DATA. La position du curseur, tel qu'affiché sur l'écran 6, peut ainsi tre modifiée par rapport à la nouvelle position de curseur résultant du mouvement de souris 1 de l'utilisateur.

Le programme de modulation de curseur 7 intégré à l'unité centrale d'ordinateur CPU est par défaut inactif, c'est-à- dire que les données de nouvelle position de curseur NCP-DATA sont déterminées à partir des données de position actuelle de curseur CCP-DATA et des données de déplacement de curseur CD- DATA puis transmises directement à la fonction de gestion vidéo 4, sans que le programme de modulation de curseur 7 ne soit sollicité.

Le programme de modulation de curseur 7 est capable d'établir les données de position de curseur modifiées MCP-DATA à

partir des données de nouvelle position de curseur NCP-DATA et des données de déplacement de curseur CD-DATA selon plusieurs lois prédéterminées qui constituent ainsi, dans leur ensemble, une bibliothèque d'effets visuels. Les lois prédéterminées sont de type perceptif. Une loi perceptive est une loi paramétrée établie de manière à rendre perceptible une propriété ou un phénomène.

Sur la figure 1, le symbole I-DATA désigne globalement différents niveaux de données d'image, appliquées à la fonction de gestion vidéo 4 et au programme de modulation de curseur 7.

La figure 1A fait mieux apparaître la distinction entre les données d'informations graphiques IG-DATA, en amont de la fonction de gestion vidéo 4 et les données d'image brutes IB- DATA, en montrant que le programme de modulation de curseur 7 reçoit avantageusement les données d'image brutes IB-DATA et les données d'informations graphiques IG-DATA. Les données d'informations graphiques IG-DATA peuvent tre des données à partir desquelles une image peut tre générée, par exemple une scène graphique ou un modèle en trois dimensions. Les données d'image brutes IB-DATA sont propres à tre affichées sur un périphérique de restitution visuelle.

L'organigramme de la figure 2 décrit le fonctionnement du programme de modulation de curseur 7. Après une initialisa- tion 200, qui, comme on le verra plus loin, peut comprendre la définition ou la réception de paramètres ainsi que la création et l'initialisation de variables, et lorsque survient un événement d'éveil de fonction FctWU en 202, sont reçues du système d'exploitation OS en 204 : - la nouvelle position de curseur CurPos contenue, selon l'exemple de la figure 1, dans les données de nouvelle position de curseur NCP-DATA, et

- la valeur du déplacement de curseur MsDpl, en pixels, contenue, toujours selon l'exemple de la figure 1, dans les données de déplacement de curseur CD-DATA. l'opération'206, une perturbation Pert, homogène à un déplacement du curseur à l'écran en pixels, est déterminée par le programme de modulation de curseur 7 en fonction de la nouvelle position de curseur CurPos, du déplacement de curseur MsDpl et de la valeur d'une variable effet Eff désignant l'effet visuel à mettre en oeuvre. En 208, la nouvelle position de curseur CurPos est modifiée par l'ajout de la perturbation Pert puis renvoyée, en 210, au système d'exploitation OS. Selon l'exemple de la figure 1, la valeur modifiée de la nouvelle position de curseur CurPos est transmise à la fonction de gestion vidéo 4 via les données de position de curseur modifiées MCP-DATA.

L'événement d'éveil de fonction FctWU 202 de la figure 2 peut tre, selon la valeur de la variable effet Eff, un mouvement de souris MsEvnt représenté par l'opération 220 sur la figure 2A ou bien un déclenchement à intervalles réguliers AT d'une horloge Tmr comme indiqué sur la figure 2B en 240.

La figure 3 détaille l'opération 206 de la figure 2 pour des valeurs de la variable effet Eff appartenant à un groupe RELIEF de valeurs pour lesquelles, la détermination de la perturbation Pert prend en compte la valeur d'un paramètre hauteur associé à chacune des positions de curseur, repré- sentée à l'écran par un pixel. Au cours de l'initialisation 200, sont créées et mises à zéro : - une variable crédit de déplacement DplCrdt, - une variable de déplacement théorique ThDpl, - une variable pixel actuel CrtPx, et - une variable pixel suivant NxtPx.

La hauteur en chacune des positions de curseur est soit définie soit reçue comme paramètre, par exemple sous forme d'une matrice de hauteurs H [x, y], où x et y définissent une position de curseur. À l'opération 300 sont mises à jour : - une variable de déplacement théorique ThDpl qui reçoit la valeur du déplacement de curseur MsDpl, et - une variable pixel actuel CrtPx, qui prend la valeur de la position actuelle de curseur c'est-à-dire, la nouvelle position de curseur CurPos de laquelle est déduite la valeur du déplacement de curseur MsDpl.

La variable crédit de déplacement DplCrdt est mise à jour, en 302, par l'ajout de la valeur de la variable déplacement théorique ThDpl. En 304, une variable pixel suivant NxtPx est mise à jour et prend la valeur de la variable pixel actuel CrtPx à laquelle est ajouté un déplacement d'un pixel dans une des deux directions perpendiculaires x, y du vecteur d'image (lesquelles correspondent aux deux directions d'une image plane affichée sur l'écran) selon la direction et le sens du crédit de déplacement DplCrdt. L'entrée de boucle 306, qui sera détaillée par la suite, détermine le coût de déplacement P2PDplCst, en nombre de pixels, du pixel actuel CrtPx au pixel suivant NxtPx en fonction : - du pixel actuel CrtPx, - de la matrice des hauteurs H [x, y], - du crédit de déplacement DplCrdt, et - de la valeur de la variable effet Eff.

Le test de fin de boucle 308 établit si la valeur du crédit de déplacement DplCrdt est supérieure au coût de déplacement P2PDplCst. Si oui, le coût du déplacement P2PDplCst est retiré du crédit de déplacement DplCrdt (opération 310), et

la variable pixel actuel CrtPx prend la valeur du pixel suivant NxtPx (opération 312).

Les opérations 306,308, 310 et 312 sont réitérées jusqu'à ce que le crédit de déplacement DplCrdt soit inférieur, en 308, au coût de déplacement P2PDpICst. La perturbation Pert prend alors, au cours de l'opération 314, la valeur du pixel actuel CrtPx duquel on déduit la valeur de la nouvelle position de curseur CurPos.

La figure 4 détaille l'opération 306 de la figure 3. Une fonction de lecture des hauteurs HMAP est appelée en 402 qui détermine, à partir de la matrice des hauteurs H [x, y], la hauteur HCrtPx associée à la variable pixel actuel CrtPx. La variable NxtPx est mise à jour en 404 en recevant la valeur de la variable pixel actuel CrtPx augmentée d'un déplacement d'un pixel dans la direction du crédit de déplacement DplCrdt, puis la fonction HMAP détermine la hauteur HNxtPx associée au pixel suivant NxtPx en 406. L'opération 408 établit le coût de déplacement P2PDplCst du pixel actuel CrtPx au pixel suivant NxtPx en fonction : - de la hauteur HCrtPx associée au pixel actuel CrtPx, - de la hauteur HNxtPx associée'au pixel suivant NxtPx, - du pixel actuel CrtPx, - du pixel suivant NxtPx, et - de la valeur de la variable effet Eff.

La figure 5 détaille l'opération 408 de la figure 4 pour des valeurs particulières de la variable effet Eff du groupe RELIEF, pour lesquelles le coût de déplacement DplCst du pixel actuel CrtPx au pixel suivant NxtPx est fonction de la différence des hauteurs qui leur sont associées. Le test 500 détermine si la hauteur associée au pixel suivant HNxtPx est

plus importante que la hauteur associée au pixel courant HCrtPx.

- Si oui, l'opération 502 crée une variable coût de déplacement du pixel actuel au pixel suivant P2PDplCst qui prend la valeur d'un pixel auquel on ajoute la valeur absolue de la différence des hauteurs associées aux pixels courant HCrtPx et suivant HNxtPx multipliée par un gain Ku.

- Sinon, l'opération 504 attribue à la variable P2PDplCst, qu'elle crée, la valeur d'un pixel auquel on ôte la valeur absolue de la différence des hauteurs associées aux pixels courant HCrtPx et suivant HNxtPx multipliée par un gain Kd.

La définition du paramètre hauteur associé à chaque position de curseur est fonction de la valeur de la variable effet Eff appartenant au groupe RELIEF.

Pour une première valeur de la variable effet Eff, la valeur du paramètre hauteur en chaque position de curseur est générée au moyen d'une fonction aléatoire.

Pour d'autres valeurs de la variable effet Eff, la hauteur en chacune des positions de curseur est définie en fonction de données vidéo, par exemple les données d'image I-DATA.

Ainsi, la hauteur en chacune des positions de curseur peut tre définie soit à partir des données d'informations graphiques IG-DATA soit à partir des données d'image vidéo brutes IB-DATA.

En particulier lorsque la variable effet Eff vaut IMAGE, on peut utiliser des données d'image vidéo brutes IB-DATA qui comprennent des pixels définis par leur position et leur

couleur. On fait correspondre la valeur de la hauteur associée à un pixel avec la couleur de celui-ci selon une fonction prédéterminée. Un exemple de réalisation est de faire correspondre la valeur de la hauteur associée à un pixel avec le niveau de gris de ce pixel.

Visuellement, lorsque l'utilisateur parcourt une image affichée sur l'écran au moyen du curseur de la souris, il perçoit une résistance dans le mouvement plus importante, par exemple, sur les parties claires de l'image que sur les parties sombres. Le relief étant communément rendu sur une image plane, par exemple un dessin ou une photographie, par la présence de zones d'ombres et de zones plus claires, la résistance appliquée au mouvement du curseur permet à l'utilisateur de percevoir le relief comme s'il parcourait effectivement le motif dans l'espace avec sa souris.

Dans d'autres cas, il est possible d'utiliser les données d'informations graphiques IG-DATA pour déterminer la hauteur associée en chacune des positions de curseur. Par exemple, ces données d'informations graphiques IG-DATA, peuvent comprendre des données définissant une image de fond et des données définissant un objet texte à afficher sur ladite image de fond. Dans ce cas, la hauteur en chacune des positions de curseur peut tre déterminée à partir des données définissant l'image de fond comme décrit précédemment dans le cas où la variable effet vaut IMAGE. Ceci permet de tenir compte, ou non, pour la modulation de position du curseur de l'objet texte. En particulier, dans l'exemple décrit ici, l'application de l'effet IMAGE sur des données d'image brutes résultant de la superposition de l'image de fond et de l'objet texte, aurait provoqué une modulation de la position du curseur en fonction de l'objet texte et aurait nuit à la perception du relief de l'image de fond sur, et à proximité de cet objet texte.

Dans un cas particulier, l'image de fond peut ne pas tre affichée. Ceci permet d'associer un effet de relief à l'objet texte. Par exemple, si les hauteurs déduites de l'image de fond situées au niveau de l'objet texte correspondent à un creux, l'effet perçu au niveau de l'objet texte est de type attractif.

Dans un autre cas, les données d'informations graphiques IG- DATA peuvent tre des données issues d'un logiciel de modélisation ou de visualisation de scènes graphiques en trois dimensions. Dans ce cas, le logiciel permet d'accéder à une information de profondeur (par exemple celle connue généralement sous le terme anglais de"Z-buffer") associée à chaque point d'une image résultant de la projection d'une scène graphique. Cette information de profondeur peut tre utilisée en tant que hauteur associée à chacune des positions de curseur. Ainsi, la perception du relief de l'image correspond exactement à la topographie de la scène graphique représentée.

Pour d'autres valeurs de la variable effet Eff encore, la valeur de la hauteur en chacune des positions de curseur est calculée, éventuellement en fonction d'un ou plusieurs paramètres et/ou lois mathématiques.

Par exemple, lorsque la variable effet vaut BOSSE, ce qui implique la définition, ou la réception comme paramètre, d'une position sommet fixée, pour laquelle la valeur de la hauteur associée est maximum, les hauteurs associées aux positions de curseur au voisinage de la position sommet sont calculées.

- Dans un mode de réalisation, la hauteur associée à une position de curseur est proportionnelle à la distance qui sépare cette position de la position sommet.

- Dans un autre mode de réalisation, la hauteur associée à une position de curseur dépend de la distance qui sépare cette position de la position sommet et suit une loi mathématique, par exemple, une loi gaussienne.

Selon cet effet"bosse", la nouvelle position de curseur modifiée CurPos+Pert est plus éloignée de la position sommet que ne l'était la nouvelle position de curseur CurPos.

Visuellement, le curseur est comme rejeté de la position sommet de sorte que pour atteindre ce point, l'utilisateur doit effectuer un mouvement de plus grande amplitude avec la souris. De mme, pour éloigner le curseur de la position sommet d'une distance donnée, l'utilisateur doit réduire l'amplitude du mouvement de la souris. L'utilisateur perçoit une résistance en allant vers la position sommet et un entraînement en s'en éloignant. Il se représente alors cette position comme le sommet d'une bosse qu'il peut gravir ou descendre avec la souris.

De façon similaire, lorsque la variable effet Eff vaut TROU, ce qui implique la définition, ou la réception comme para- mètre, d'une position fond fixée pour laquelle la valeur de la hauteur associée est minimum, les hauteurs associées aux positions de curseur au voisinage du fond sont calculées comme précédemment. Dans ce cas, le curseur est attiré par la position fond, alors qu'il semble difficile de s'en éloigner, de sorte que l'utilisateur perçoit la position fond comme le fond d'un trou qu'il franchit avec sa souris.

Dans un autre mode de réalisation des effets"bosse"et "trou", la position sommet et la position fond respectivement ne sont plus des points mais des segments ou des courbes, le long desquels la valeur de la hauteur associée est maximum ou minimum respectivement. La hauteur associée à un pixel est

alors fonction de sa distance au segment (ou courbe) sommet (ou fond) comme décrit plus haut.

Dans tous les effets décrits ci-dessus, la hauteur associée à un pixel peut varier en fonction du temps. Dans un premier cas, les hauteurs associées aux pixels sont calculées en prenant en compte une dimension temporelle. Dans un deuxième cas, les données d'images peuvent définir un flux vidéo et, de fait, les valeurs des hauteurs associées aux positions du curseur, lorsqu'elles sont calculées à partir des données d'images, par exemple pour une valeur du paramètre effet valant IMAGE, varient dans le temps.

La figure 6 détaille l'opération 206 de la figure 2, pour une valeur TELEPORTATION de la variable effet Eff.

L'initialisation 200 de la figure 2 comprend, dans ce cas, la définition, ou la réception comme paramètre, d'un domaine D de positions de curseur à l'écran et d'une position de curseur à l'écran dite position d'arrivée ArrPos. Le test 600 détermine si la nouvelle position de curseur CurPos est comprise dans le domaine D.

- Si oui, la variable perturbation Pert est créée qui prend la valeur de la position d'arrivée ArrPos de laquelle est déduite la nouvelle position de curseur CurPos, en 602.

- Sinon, l'opération 604 crée la variable perturbation Pert et lui affecte la valeur nulle.

Visuellement, lorsque la nouvelle position de curseur CurPos n'appartient pas au domaine D, la position du curseur n'est pas modifiée. Dans le cas contraire, la nouvelle position de curseur modifiée CurPos+. Pert de l'opération 208 de la figure 2 correspond à la position d'arrivée ArrPos, ainsi quand le curseur pointe dans le domaine D, le curseur apparaît à la

position d'arrivée ArrPos.

Lorsque la variable effet Eff vaut OSCILLATION, l'opération 206 de la figure 2 peut tre décrite par la figure 7. La variable perturbation Pert est créée lors de l'initialisation 200 de la figure 2, qui prend une valeur, laquelle peut tre définie ou reçue comme paramètre, homogène à un déplacement défini en intensité, sens et direction. L'opération 700 met à jour la variable perturbation Pert en la multipliant par la valeur (-1), ce qui revient à inverser le sens de la pertur- bation. Pour cette valeur de la variable effet Eff, l'opération d'éveil de fonction FctWU 202 survient à inter- valles de temps réguliers AT grâce à l'horloge Tmr de la figure 2B.

Cet effet modifie la nouvelle position de curseur CurPos en lui ajoutant la perturbation Pert, laquelle change de sens à chaque calcul. Sur l'écran, le curseur semble osciller autour de la nouvelle position du curseur telle que définie par le mouvement de souris de l'utilisateur. Une application préférée est de faire osciller le curseur à gauche et à droite de la nouvelle position de curseur définie par le mouvement de la souris, mais d'autres directions de perturba- tion sont envisageables.

La figure 8 précise l'opération 206 de la figure 2 lorsque la variable effet Eff prend la valeur FORCE, ce qui implique, au cours de l'initialisation 200 de la figure 2, la définition ou la réception comme paramètre d'une valeur force F, homogène à un déplacement, caractérisé en sens, direction et intensité. L'opération 800 affecte systématiquement à la variable perturbation Pert la valeur force F. Pour cette valeur de la variable effet Eff également, l'éveil de fonction FctWU de l'opération 202 est réalisé par l'horloge Tmr de la figure 2B à intervalles de temps réguliers AT.

Dans ce cas, la nouvelle position de curseur modifiée est éloignée de la nouvelle position de curseur résultant d'un mouvement de souris d'un déplacement constant. Visuellement, l'utilisateur perçoit le curseur comme soumis à une force. En particulier, lorsque la souris est immobile, le curseur se déplace à l'écran dans le sens et la direction de cette force et dans le cas d'un mouvement de souris contre cette force, le curseur semble rencontrer une résistance.

Pour des valeurs de la variable effet Eff appartenant à un groupe INERTIE de valeurs, l'opération 206 de la figure 2 peut tre détaillée par la figure 9. Pour de telles valeurs de la variable effet Eff, l'opération d'initialisation 200 de la figure 2 crée : - une variable accélération actuelle de curseur CurAcc mise à zéro, -une variable vitesse actuelle de curseur CurSpd mise à zéro, - une variable vitesse précédente de curseur CurSpdl mise à zéro, et - une variable position précédente de curseur CurPosl qui prend la valeur de la position de curseur CurPos reçue du système d'exploitation OS.

L'opération 900 calcule la valeur de la variable vitesse actuelle de curseur CurSpd comme étant la différence de la nouvelle position de curseur CurPos et de la position précédente CurPosl que divise l'intervalle de temps AT défini par l'horloge Tmr de la figure 2. La variable accélération actuelle de curseur CurAcc est calculée comme différence des vitesses de curseur actuelle CurSpd et précédente CurSpdl que divise l'intervalle de temps AT. En 902, la variable pertur-

bation Pert est créée qui prend une valeur déterminée en fonction de la vitesse actuelle de curseur CurSpd, de l'accélération actuelle de curseur CurAcc, de la nouvelle position de curseur CurPos et de la valeur de la variable effet Eff. Au cours de l'opération 904, sont mises à jour : - la variable vitesse précédente de curseur CurSpdl comme différence de la nouvelle position de curseur modifiée CurPos+Pert et de la position précédente de curseur CurPosl que divise l'intervalle de temps AT, et - la variable position précédente de curseur CurPosl en prenant la valeur de la nouvelle position de curseur modifiée CurPosAPert.

Pour une valeur particulière de la variable effet Eff appartenant au groupe INERTIE, la variable perturbation Pert est proportionnelle, d'un facteur Ka défini ou reçu comme paramètre à l'opération d'initialisation 200 de la figure 2, à l'accélération actuelle de curseur CurAcc et de sens opposé, comme représenté sur la figure 9A par l'opération 912.

Selon cet effet, l'utilisateur doit fournir un mouvement de souris plus important que d'ordinaire pour provoquer un mouvement du curseur à l'écran et, lorsque le mouvement de la souris cesse, le curseur est encore entraîné pendant quelques instants. Visuellement le curseur semble posséder une masse propre et tre soumis à un effet d'inertie.

Dans le cas, décrit sur la figure 10, où la variable effet Eff prend la valeur ELASTICITE, l'initialisation 200 de la figure 2 comprend : - la création d'une variable position théorique de curseur CurPosTh qui prend la valeur de la nouvelle

position de curseur CurPos lue depuis le système d'exploitation OS, - la création d'une variable position précédente de curseur CurPosl qui prend la valeur de la nouvelle position de curseur CurPos, et - la définition ou la réception comme paramètre d'une valeur de raideur Ke.

L'opération 206 de la figure 2 se compose alors : - d'une opération 1000 au cours de laquelle la variable de position théorique de curseur CurPosTh est mise à jour par l'ajout du déplacement de curseur MsDpl, - du calcul de la perturbation Pert, en 1002, en fonc- tion de la raideur Ke, de la position de curseur théo- rique CurPosTh, de la position de curseur précédente CurPosl, de la nouvelle position de curseur CurPos et de la valeur de la variable effet Eff, et - de la mise à jour de la variable de position précé- dente du curseur CurPosl comme valant la nouvelle position de curseur modifiée CurPos+Pert.

Pour une valeur particulière de la variable effet Eff appartenant au groupe ELASTICITE de valeurs, la perturbation Pert, comme indiqué sur la figure 10A par l'opération 1012, est calculée comme le produit de la raideur Ke et de la différence des positions de curseur théorique CurPosTh et précédente CurPosl, auquel est ajoutée la différence des positions de curseur précédente CurPosl et nouvelle CurPos.

Sur l'écran, le mouvement du curseur semble tre soumis à une force de rappel provenant d'un ressort ou d'un élastique.

Pour des valeurs de la variable effet Eff appartenant à un groupe VISCOSITE, l'initialisation 200 de la figure 2 comprend la création et la mise à zéro d'une variable de vitesse de curseur CurSpd ainsi que la création d'une variable de position précédente de curseur CurPosl qui est initialisée à la valeur de la nouvelle position de curseur CurPos lue depuis le système d'exploitation OS. L'opération 206 de la figure 2 comprend alors : - le calcul de la vitesse actuelle de curseur CurSpd comme étant la différence des positions nouvelle CurPos et précédente CurPosl de curseur que divise l'intervalle de temps AT (opération 1100), - le calcul de la perturbation Pert fonction de la vitesse de curseur CurSpd, de la nouvelle position de curseur CurPos et de la valeur de la variable effet Eff, - la mise à jour de la position précédente de curseur CurPosl qui prend la valeur de la nouvelle position de curseur modifiée CurPos+Pert en 1104.

Pour une valeur particulière de la variable effet Eff appartenant au groupe VISCOSITE de valeurs, la perturbation Pert, comme représenté sur la figure 11A par l'opération 1112, est simplement proportionnelle d'un facteur-Kv, défini ou reçu comme paramètre à l'initialisation 200 de la figure 2, à la vitesse du curseur CurSpd.

Visuellement le mouvement du curseur à l'écran semble se faire dans un milieu visqueux, c'est-à-dire que le mouvement du curseur est freiné par une force dont l'intensité varie avec la vitesse de déplacement du curseur à l'écran.

Dans les exemples de réalisation décrits ci-dessus, il a été fait référence, en tant que périphérique de pointage 1, à une souris. D'autres périphériques de pointage sont envisageables comme une manette de jeu, un stylet informatique de table graphique ou encore un dispositif de pointage fixe à boule de type connu sous le terme anglais de"Trackball", pour des dispositifs de pointage en deux dimensions. Des dispositifs de pointage en trois dimensions peuvent tre utilisés avec l'unité centrale selon l'invention comme décrit ci-dessous.

L'unité centrale décrit ci-dessus peut tre reliée à un périphérique de restitution visuelle 6 en trois dimensions tel qu'un casque de réalité virtuelle ou un système à plusieurs écrans éventuellement combinés à l'aide d'un système de lentilles ou de miroirs. Dans ce cas, le disposi- tif de pointage 1 est avantageusement un capteur de position de type optique, magnétique ou à ultrasons permettant le pointage dans les trois directions de l'espace.

Les effets décrits ci-dessus peuvent tre alors tre mis en oeuvre moyennant quelques modifications. En particulier, le calcul des données de positions de curseur modifiées MCP-DATA se fait suivant trois dimensions, la perturbation Pert est un vecteur défini selon trois directions et la matrice des hauteurs H [x, y] est complétée selon une troisième coordonnée, par exemple z, afin de définir la hauteur associée à un point ou un volume de l'espace, comme par exemple un voxel.

Le programme de modulation de curseur 7 peut tre intégré à un logiciel destiné à tre exécuté dans la mémoire d'une unité centrale Le fonctionnement de l'unité centrale selon l'invention, tel que décrit précédemment peut également tre exprimé sous la forme d'un procédé.

Les effets exposés précédemment sont à considérer comme des exemples de mise en oeuvre du programme de modulation de curseur 7. D'autres effets sont envisageables qui utilisent les méthodes de calcul détaillées plus haut. De plus, le programme de modulation de curseur 7 peut ne comprendre que quelques-uns des effets décrits ici ou encore les combiner afin d'obtenir d'autres effets.

De mme le cheminement des données représenté sur la figure 1 n'est donné qu'à titre d'exemple. En particulier, il est envisageable, que les données de position de curseur actuelle CCP-DATA soient transmises directement par la fonction de gestion vidéo 4 au programme de modulation de curseur 7 ou encore que les données de déplacement de curseur CD-DATA, les données de position de curseur actuelle CCP-DATA, les données de nouvelle position de curseur NCP-DATA et les données de position de curseur modifiées MCP-DATA ne transitent pas par les fonctions de gestion de pointage 3 et de gestion vidéo 4 mais par d'autres fonctions intégrées au système d'exploitation OS de l'unité centrale d'ordinateur CPU.

Dans la présente description, il a été question de modulation de la position d'un curseur. L'invention n'est pas limitée à un curseur au sens habituellement entendu dans le domaine des interfaces graphiques utilisateur. En particulier, l'invention peut tre mise en oeuvre sur différents objets graphiques qui seraient déplacés à l'écran par action sur le périphérique de pointage, et ce qu'un curseur soit ou non affiché.

Enfin, par le terme"unité centrale", on entend un ordinateur personnel classique mais également tout autre assemblage de composants capable de mettre en oeuvre les fonctions interve- nant à propos de l'invention, quelqu'en soit la forme, depuis

les consoles de jeux, les serveurs LAN jusqu'au ordinateurs portables.

L'invention ne se limite pas aux modes de réalisation décrits ci-avant, seulement à titre d'exemple, mais elle englobe toutes les variantes que pourra envisager l'homme de l'art.