Méthode de Détermination des Fonctions de Gains

Transcription

Méthode de Détermination des Fonctions de Gains
Méthode de Détermination des Fonctions de Gains
Jean-Philippe Deblonde, Géry Casiez et Laurent Grisoni
LIFL & INRIA Lille Nord-Europe
Université de Lille 1, F RANCE
{jean-philippe.deblonde, gery.casiez, laurent.grisoni}@lifl.fr
RÉSUMÉ
Cet article propose un dispositif et une méthode pour
obtenir les fonctions de gains des différents systèmes
d’exploitation courants. Nous présentons tout d’abord
une méthode objective, reposant sur un dispositif matériel
spécifique, de mesure de la fonction de gain utilisée par
un système. A l’aide de ce dispositif, nous déterminons les fonctions de gains utilisées sur les systèmes
d’exploitations courants. Nous examinons enfin les différences entre ces différentes fonctions. Les résultats
montrent des différences importantes dans les profils des
courbes obtenues.
MOTS CLÉS :
fonction de gain, pointage, courbe
d’accélération.
ABSTRACT
This article presents an apparatus and a method to retrieve
the gain functions from different operating systems. First,
we present a method for measuring the gain function used
on an arbitrary system, based on some specific hardware.
Using this hardware, we describe the gain functions used
by current operating systems. We then analyze the differences between those functions. The results show important differences between the curves retrieved.
CATEGORIES AND SUBJECT DESCRIPTORS: H5.2
[Information interfaces and presentation]: User Interfaces.
- Graphical user interfaces.
GENERAL TERMS:
KEYWORDS:
Measurement, Performance
gain function, pointing, pointer accelera-
tion, CD gain.
INTRODUCTION
La grande majorité des interfaces graphiques disponibles
à l’heure actuelle sont utilisées en interaction indirecte.
La surface d’interaction réelle (celle sur laquelle évolue
la main de l’utilisateur), et la surface d’écran associée où
évolue le pointeur virtuel étant de dimensions différentes,
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies
are not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
IHM 2010, 20-23 Septembre 2010, Luxembourg, Luxembourg
.
une fonction de correspondance est, de fait, nécessaire.
Bien qu’elle puisse se présenter différemment selon la nature du périphérique, la forme la plus répandue est celle
d’une fonction de gain, donnant une relation simple entre
la vitesse de la main et la vitesse du pointeur à l’écran.
Sur la plupart des systèmes d’exploitation courants, une
fonction de gain est appliquée par défaut au pointeur.
D’une manière générale, le profil de la fonction de gain
implémentée par un système d’exploitation donné est peu
(voire pas) documenté. Il est donc à l’heure actuelle
quasiment impossible d’espérer développer une application multiplateforme qui proposerait à l’utilisateur un contrôle rigoureux, indépendant du système d’exploitation, de
la fonction de gain du pointeur souris.
Les travaux disponibles dans l’état de l’art montrent que
le profil de la fonction de gain a une influence sur les performances de pointage [1]. Ces travaux suggèrent la possibilité d’optimiser le profil de la fonction de gain pour
améliorer les performances. Un bon point de départ est
de commencer par comparer les fonctions utilisées sur
les systèmes d’exploitation actuels pour ensuite guider la
définition d’une courbe optimale. Dans cet article, nous
proposons une méthode pour déterminer les fonctions de
gains utilisées par un système, sans connaissance préalable du système d’exploitation utilisé.
L’article est organisé de la manière suivante : nous
décrivons tout d’abord, dans la première section, les résultats disponibles dans la littérature concernant les fonctions de gains. Ensuite, nous donnons quelques éléments
techniques généraux, nécessaire au lecteur pour la bonne
lecture du travail ici présenté. Nous décrivons ensuite la
proposition matérielle que nous faisons, pour pouvoir extraire la fonction de gain d’un système. Enfin, nous comparons les différentes courbes obtenues entre elles et par
rapport à celles de l’état de l’art.
TRAVAUX ANTERIEURS
Le gain ( CD gain en anglais) est une grandeur sans unité
qui définit le facteur d’amplification des mouvements de
la main pour le contrôle d’un pointeur virtuel. Il se définit
comme le rapport entre la vitesse du pointeur (Vpointeur )
et celle de la main (Vmain ), exprimées dans les mêmes
unités [1] (equation 1).
Vpointeur
(1)
gain =
Vmain
(2)
Le système d’exploitation lit les informations brutes
reçues (en nombre de points) et en déduit une vitesse
du périphérique en supposant que sa résolution est de
400 DPI1 . Que ce soit sur Windows, Mac ou Linux, le
changement notable de comportement du pointeur quand
on change de résolution de souris montre que ces systèmes
n’ont aucune connaissance de cette information. Le système prend également en compte la résolution de l’écran
et sa fréquence de rafraîchissement pour obtenir la vitesse
du pointeur désirée en fonction du gain utilisé. Les systèmes d’exploitation peuvent également appliquer un mécanisme de sous-pixelisation qui consiste à enregistrer les
1 http://www.microsoft.com/whdc/archive/
pointer-bal.mspx
USB +5V
USB D-
USB D+
D-
D+
prog 1
USB 0V
prog 2
prog 3
progr 4
+3,3 V
D+
USB PicKit 2
3,3 V
diode
zener 3,9 V
D+ D- 5V
USB
D+
+ 3,3 V
1k Ω
10 kΩ
D- +3,3 V
20
19
18
17
16
15
14
13 12 11
RB4 RB5 RB6
7
8
PIC 18LF14K50
1
2
3
4
5
6
9
RB7
10
120 kΩ
3,3 V
FONCTIONNEMENT D’UNE SOURIS
Une souris est un périphérique qui mesure sa position de
manière relative: la variation de sa position par rapport
à celle précédente est mesurée. La position est mesurée
avec une certaine résolution, généralement exprimée en
DPI (dots per inch ou points par pouce). Les informations
0,0254
Res
Ainsi la vitesse maximale mesurable pour une souris 400
DPI branchée sur un port USB à 125 Hz est de 1,016
m.s−1 . Il est intéressant de voir que cette vitesse chute
à 0,127 m.s−1 dans le cas d’une souris à 3200 DPI. Pour
cette raison les constructeurs de souris ont généralement
prévu la possibilité d’envoyer les informations à 1000 Hz.
Dans ce cas, on retrouve une vitesse maximale mesurable
de 1,016 m.s−1 .
470 Ω
Ces derniers travaux ont permis de montrer que les fonctions de gains dynamiques permettent d’améliorer les performances comparées aux fonctions de gains constantes.
Cependant, un seul profil de courbe a été testé: celui de
la fonction de gain dynamique de Windows. Les travaux
de Casiez et al. présentent aussi les fonctions de gains
dynamiques de Mac OS X, à nouveau extraites et interprétées de la base de registre, mais non évaluées.
V itesseM ax = F req × 2T aille−1 ×
470 Ω
Différents travaux ont comparé les fonctions de gains constantes et dynamiques. Certains ont conclu que les fonctions de gains dynamiques n’ont que peu d’effet [3], ou
qu’elles diminuent les performances [2, 4]. Ces études ont
porté sur des fonctions de gains dynamiques qui étaient
non continues, ou avec un gain maximum peu élevé, alors
que les courbes effectivement utilisées par les systèmes
d’exploitation modernes sont au contraire continues, avec
des valeurs de gains importantes pour des vitesses élevées.
Casiez et al. ont étudié l’influence des fonctions de gains
constantes et dynamiques dans les tâches de pointage [1].
Pour les fonctions de gains constantes, ils ont utilisé des
valeurs de gains égales à 1, 2, 4, 6, 8 et 12. Pour les
fonctions de gain dynamiques, ils ont utilisé les fonctions
de gains dynamiques du système d’exploitation Microsoft
Windows XP, en extrayant les valeurs de la base de registre. Leurs travaux précisent qu’une seule courbe est enregistrée dans la base de registre du système Windows et
que les différentes positions du curseur dans le panneau de
configuration de la souris permettent d’appliquer un facteur d’échelle à cette courbe. Les courbes testées correspondent à des facteurs d’échelle de 0,1; 0,25; 0,5; 0,75;
1,0 et 1,25. Les résultats montrent que les fonctions de
gains dynamiques testées améliorent significativement le
temps de pointage par rapport aux fonctions de gains constantes, de 3,3% en moyenne, avec un avantage marqué
pour les petites cibles (5,6%). Il a également été montré
que pour les fonctions de gains constantes ainsi que pour
les différentes fonctions de gains dynamiques proposées
par Windows, il existe un ensemble de fonctions pour
lesquelles les performances sont optimales. En effet, les
courbes Windows correspondant à des facteurs d’échelle
de 0,1; 0,25 et 1,25 ont montré une diminution des performances.
numérisées (exprimées en nombre de points) sont stockées sur 8 bits pour chaque axe et envoyées, dans le cas
d’une souris USB, à 125 Hz sur le bus. La résolution par
défaut d’une souris est de 400 DPI, sachant que des souris
jusqu’à 5600 DPI sont commercialisées. A partir de la résolution de la souris exprimée en DPI (Res), du nombre
de bits utilisé pour stocker les informations (T aille) et de
la fréquence d’envoi des données (F req), il est possible
de calculer la vitesse maximale mesurable (V itesseM ax)
exprimée en m.s−1 selon l’équation 2.
≈ 100 Ω
Le gain peut être constant ou varier en fonction de la
vitesse de la main. Dans ce dernier cas, on parle communément d’accélération du pointeur. La fonction qui
donne la valeur du gain en fonction de la vitesse de la
main est appelée fonction de gain. Lorsque le gain reste
constant, quelque soit la vitesse de la main, on parle de
fonction de gain constante et lorsqu’il varie avec la vitesse
de la main, on parle de fonction de gain dynamique.
Q
3,3 V
12Mhz
prog 1
Figure 1 : Schéma électronique du simulateur de souris.
prog 5
D-
12
20
18
16
14
Gain
Gain
12
10
8
6
4
2
0
44
42
40
38
36
34
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
10
8
6
4
2
0
0
0
0
0,2
0,4
0,6
0,8
1
0,05
0,1
0,1
0,15
0,2
0,3
déplacement de la souris sans forcément bouger le pointeur à l’écran1 .
La solution que nous proposons permet de déterminer la
fonction de gain du système, en contrôlant les informations envoyées par un circuit électronique qui simule une
souris et en mesurant en retour le déplacement du pointeur
à l’écran.
SIMULATEUR DE SOURIS
Nous avons développé un circuit électronique connecté
à l’ordinateur sur un port USB. L’objectif est que
l’ordinateur considère ce circuit comme une vraie souris
mais que nous puissions contrôler précisément les informations envoyées.
Le circuit électronique est conçu autour du PIC
18LF14K50 de chez Microchip2 . C’est un composant programmable en C en utilisant les bibliothèques de compilation et le système de programmation PICkit 2, également conçus par Microchip. En plus des composants
nécessaires pour faire fonctionner le PIC, nous avons
ajouté un interrupteur et deux leds utilisées comme retour
d’information (Figure 1).
Nous avons utilisé un firmware de souris fourni par Microchip pour que le PIC soit vu par l’ordinateur comme
une vraie souris. Le reste du code permet de contrôler le
nombre de points envoyés par notre simulateur de souris
pour l’axe des abscisses (qui correspond à la largeur de
l’écran). Cette valeur peut varier de -127 à 127.
Notre méthode de détermination de la fonction de gain du
système consiste à d’abord placer le pointeur de la souris
à gauche de l’écran. Nous envoyons ensuite un nombre
connu de points en appuyant sur le bouton de notre sim2 http://www.microchip.com
0,4
0,5
0,6
0,7
0,8
0,9
1
1,2
Vitesse souris (m.s-1)
Vitesse souris (m.s-1)
Figure 2 : Les courbes grises correspondent aux 11 fonctions de gain de Windows XP quand la case "Améliorer
la précision du pointeur" est cochée, de "lente" (curseur
tout à gauche, courbe du bas), à "rapide" (curseur tout à
droite, courbe du haut). Les courbes en pointillés orange
correspondent aux facteurs d’échelle de 0,25; 0,5; 0,75
et 1,0 testées par Casiez et al. [1]
0,2
Figure 3 : Les courbes grises correspondent aux fonctions de gains pour les 10 positions du curseur sur
l’interface de configuration de la souris de Mac OS X, de
"lente" (courbe du bas) à "rapide" (courbe du haut). Les
courbes en rouge pointillés correspondent aux courbes
obtenues par Casiez et al. [1]. (La partie supérieure
gauche de la figure correspond à un zoom sur l’intervalle
[0; 0,2]).
ulateur de souris et nous mesurons le déplacement correspondant du pointeur en pixels. Le couple de valeur (nombre de points de la souris, déplacement du pointeur en pixels) est enregistré et le pointeur est re-positionné à gauche
avant d’envoyer une nouvelle valeur de déplacement.
Compte tenu de la technique de sous-pixelisation utilisée sur certains systèmes, il se peut que le pointeur ne
bouge pas quand un nombre petit de points est envoyé.
Par ailleurs, pour augmenter la précision de mesure des
déplacements en pixels et obtenir des valeurs décimales
plutôt que des valeurs entières, nous répétons plusieurs
fois l’envoi d’une valeur de déplacement de la souris en
points. En pratique, notre simulateur de souris envoie
d’abord 10 fois 1 point lors du premier appui sur le bouton
du simulateur puis l’expérimentateur appuie sur la barre
espace pour mesurer le déplacement du pointeur correspondant, enregistrer les valeurs et re-positionner le pointeur à gauche. Un nouvel appui sur le bouton du simulateur envoie 10 fois 2 points et ainsi de suite.
RESULTATS
Nous avons utilisé notre système pour déterminer les
fonctions de gains des systèmes d’exploitation Windows
XP SP3, Mac OS 10.5.6 et Linux Ubuntu 9.04. Pour
passer d’une valeur de déplacement de la souris en points
(points) à une vitesse (Vsouris ) en m.s−1 , nous avons
supposé que la résolution de souris (Res) est de 400
DPI et que les informations sont envoyées à la fréquence
(F req) de 125 Hz (Equation 3).
Vsouris
=
0,0254 × F req ×
points
Res
(3)
gain =
Ressouris
pixels
×
points
Resecran
(4)
Pour Windows XP, nous avons obtenu les courbes pour
toutes les positions du curseur dans le panneau de configuration de la souris quand la case "Améliorer la précision
du pointeur" est cochée (Figure 2). Nous avons fait de
même pour les 10 positions du curseur dans l’interface de
configuration de la souris de Mac OS X (Figure 3) ainsi
que celles de Windows quand la case "Améliorer la précision du pointeur" est décochée et également celle de la
configuration par défaut sous Linux Ubuntu (Figure 4)3 .
DISCUSSION
Les fonctions de gains obtenues pour Windows avec notre
méthode sont très proches de celles utilisées par Casiez et
al. [1] (Figure 2). Les facteurs d’échelle 0,25; 0,5; 0,75
et 1,0 utilisés correspondent ainsi aux 3e , 5e , 7e et 9e positions du curseur en partant de la gauche, sur l’interface
de réglage de la souris. Nous pouvons considérer que ces
résultats permettent de valider la méthode que nous avons
proposée.
En revanche, en ce qui concerne Mac OS X, même si
les courbes gardent la même allure, nous constatons de
grandes différences avec les courbes extraites par Casiez
et al.. Ces derniers avaient obtenus ces courbes à partir de
la base de registre du système, sans pouvoir avoir accès à
l’intégralité de la chaîne de traitement.
Nous pouvons noter que Mac OS X propose un ensemble de courbes, toutes différentes, même si le début de
chaque courbe est identique. Lorsque les courbes Mac
OS sont représentées par la vitesse curseur en fonction
de la vitesse périphérique, nous pouvons voir une asymptote horizontale sur les hautes vitesses ; ceci est équivalent à ce que nous pouvons noter sur le graphe de la figure3, à savoir une chute de la valeur du gain sur les hautes
valeurs de vitesse périphérique. Windows quant à lui propose deux familles de courbes accessibles en cochant ou
décochant l’option "Améliorer la précision du pointeur"
(cochée par défaut). Lorsque l’option est cochée, les différentes positions de réglage permettent d’appliquer un
3 Les données numériques des courbes sont disponibles à cette
adresse http://www.lifl.fr/~casiez
14
12
10
8
Gain
Pour le calcul de la vitesse du pointeur en m.s−1 , nous
avons utilisé la même équation en remplaçant le nombre
de points par le nombre de pixels et en utilisant la résolution de l’écran en DPI. Pour la fréquence, nous n’avons
pas utilisé celle de l’écran mais celle de la souris. En effet,
que les informations soient lues dans la pile à la fréquence
de l’écran ou celle de la souris, nous obtiendrons les
mêmes résultats de calcul de vitesse, en supposant que
les données sont accumulées dans la pile. Ainsi le calcul du gain (gain) en fonction du nombre de points envoyés, de la résolution de la souris (Ressouris ), de celle
de l’écran (Resecran ) et du nombre de pixels de déplacement du pointeur (pixels) est donné par l’équation 4.
6
4
2
0
0
0,2
0,4
0,6
0,8
1
Vitesse souris (m.s-1)
Figure 4 : Les courbes grises correspondent aux
fonctions de gains de Windows XP quand le bouton
"Améliorer la précision du pointeur" est décoché. Celle
du bas est obtenue pour le curseur tout à gauche et celle
du haut pour le curseur tout à droite. La courbe bleue est
celle de la fonction de gain par défaut de Linux Ubuntu
(d’autres courbes de même allure sont accessibles via
l’interface de configuration de la souris).
facteur d’échelle à une courbe de référence. Lorsqu’elle
est décochée, des fonctions de gain constantes sont utilisées, à l’exception du début de la courbe qui correspond
à une fonction de gain dynamique. Linux Ubuntu propose une fonction similaire. Il est intéressant de noter
qu’aucune des fonctions de gains proposées par les différents OS n’est constante.
CONCLUSION
Nous avons proposé une méthode de détermination des
fonctions de gains utilisées par les différents systèmes
d’exploitation existants, sans connaissance préalable ou
modification du système. Cette méthode a été validée par
comparaison aux travaux antérieurs et nous avons pu constater les différences importantes qui existent dans les profils des différentes courbes proposées. Nous envisageons
comme travaux futurs de comparer les performances de
ces fonctions de gains.
REMERCIEMENTS
Ce travail a été financé par le projet ANR n◦ ANR-07TECSAN-020 “REACTIVE”.
BIBLIOGRAPHIE
1. Casiez, G., Vogel, D., Balakrishnan, R., and Cockburn, A.
The impact of control-display gain on user performance in
pointing tasks. Human-Computer Interaction, Taylor and
Francis, 23(3):215–250, 2008.
2. Graham, E. Virtual pointing on a computer display: nonlinear control display-mappings. Graphics Interface Conference, pages 36–46, 1996.
3. Jellinek, H., and Card, S. Powermice and user performance.
ACM CHI Conference on Human Factors in Computing Systems, pages 213–220, 1990.
4. Trankle, U., and Deutschmann, D. Factors influencing speed
and precision of cursor positioning using a mouse. Ergonomics, 34:161–174, 1991.
1,2