Bildschirm-Maus-Rückkoppelung




Dies beschreibt eine zusätzliche Funktion in meinem Reaktionszeit-Testprogramm, welches hier zu finden ist.

Als ich mein Reaktionszeit-Testprogramm auf meinem PC und meinem Notebook getestet habe, vermutete ich erst einen Timing-Bug, da ich immer etwa 20ms bessere Werte auf dem Notebook erreicht habe. Es zeigte sich, dass ich die gleichen langsameren Werte erhalte, wenn ich mein TFT als externen Monitor an das Notebook stecke. Der nächste Schritt meinen Verdacht zu erhärten war, eine Audiosoftware auf dem Notebook zu starten, die einen schnell hochzählenden Counter während des Abspielens anzeigt. Externes TFT und NB-display zeigen den gleichen Bildschirm. Mit meiner Videokamera habe ich abgefilmt, wie beide Displays 'gleichzeitig' den Counter zeigen. Das Einzelbild links habe ich aus dem Video entnommen und es zeigt auf dem großen Monitor einen Counter, der 40ms hinter dem Notebookdisplay herhinkt! Diese 40ms sind allerdings ein Extremwert, da der counter nur eine Auflösung von 40ms hat. In dem abgefilmten Video gibt es viele Frames, in denen keine Zeitdifferenz abzulesen ist aber auch die, die 40 ms zeigen. Die Wahrheit liegt dazwischen. Es scheint dass der TFT mindestens ein Frame (~17ms@60Hz), für welche Zwecke auch immer, zwischenspeichert bevor er ihn anzeigt.
Mittlerweile habe ich auch ein kleines Programm kreiert, das mit jedem Frame die verstrichene Zeit seit Programmstart anzeigt (modulo 1000ms). Es schreibt die Zeit von oben nach unten laufend, damit sich die Zahlen nicht übereinanderblenden. Und es schreibt die Zeit einmal weiß und einmal schwarz auf grau um unterschiedlichen rise/fall-times des LCD Rechnung zu tragen. Klar ist zu sehen, dass die Anzeige auf dem großen Monitor links ein Frame (17ms) zurück ist. Nebenbei kann man an den verblassenden Zahlen die rise/fall-Zeiten des LCD ablesen. Kamera-Belichtungszeit waren 8ms.
Ich dachte es wäre vielleicht von allgemeinem Interesse, so habe ich ein Feature in mein Programm eingebaut, mit dem man die über-alles Verzögerung des Systems messen kann. Um das zu aktivieren, den entsprechenden Button im Menü drücken. Sollten sich diese Messungen als korrekt herausstellen, müsste man diese Zeit von der gemessenen eigenen Reaktionszeit abziehen. Dieser Test kann verwendet werden, um komplette Computersysteme oder nur Displays gegeneinander in Bezug auf ihre innere Verzögerungszeit zu vergleichen .
Dieses Fenster erscheint wenn der Test gestartet wird. Der hoffentlich clevere Weg, die Umlauf-Verzögerungszeit zu messen ist, ein Zufallsmuster auf dem Bildschirm zu verschieben und es einer optischen Maus zu zeigen als wenn es die sich bewegende Oberfläche des Schreibtischs wäre. Das große Quadrat in der Mitte enthält das Pattern, das sich in x und y verschiebt. Das kleine Quadrat in der rechten oberen Ecke liefert visuellen feedback ob die Messung funktioniert, es bewegt sich wenn die Maus korrekt plaziert ist und etwas sieht. Ich erwarte nicht, dass die Technik auf Bildröhren funktioniert, denn 1) durch das dicke Glas vor dem Phosphor ist die Maus vollkommen defokussiert und 2) die flackernde unbeständige Natur der Bilder auf CRTs.
Du musst die Maus aufrecht und mit 2..3mm Distanz vor den Screen halten - das ist kein Aprilscherz! Mit meiner Logitech MX510 Maus funktioniert das überraschend gut. Wahrscheinlich geht es mit allen Mäusen, die die neuste Generation Chip enthalten. Diese wird bei Logitech 'MX' genannt und ist zu erkennen an Werbeaussagen wie '6400 fps' or '5.4 Mpixels/s' auf der Verpackung. In diesen Mäusen ist der neuste ADNS 3060 Chip von Agilent und er funktioniert für diesen Zweck um einiges besser als die vorherige Generation in älteren Mäusen. Mit dem Abstand zum Bildschirm muss man experimentieren. Die Defokussierung ist notwendig, damit der Chip nicht das feststehende RGB-Raster des Bildschirms sieht, sondern das sich bewegende Muster. Geht man allerdings zu weit weg, ist auch das Muster zu unscharf um noch die Bewegung zu sehen. Es hilft viel, die helle Lichtquelle der Maus mit einem undurchsichtigem Klebeband für den Test zu verdecken. Ich emfehle ZWEI MÄUSE an den Computer zu stecken, eine um Windows zu bedienen und die andere für die Wissenschaft.
Das Ergebnis wird im gleichen Fenster wie beim Reaktionstest angezeigt. Es stört nicht sehr, wenn die aufgezeichneten Kurven deutlich mehr von der Vorgabe abweichen als beim Reaktionszeittest. Wegen seiner Stabilität wird hier ein Kreuzkorrelationsansatz verwendet, um die Verzögerung zu ermitteln.
Ergebnisse:

1600x1200
Notebook Inspiron 8200- WinXPHome - internes Display
vsync on: 56ms
vsync off: 36ms

externer Dell2001FP Monitor
vsync on: 76ms
vsync off: 55ms

durchschnittlicher PC - Geforce4 - WinXPPro - Dell2001FP Monitor
vsync on: 76ms

1280x1024
Notebook Inspiron 8200 - WinXPHome - internes Display
vsync on: 55ms
vsync off: 33ms

externer Dell2001FP Monitor
vsync on: 75ms
vsync off: 51ms

externer LG Flatron 1810 Monitor
vsync on: 60ms
vsync off: 38ms


durchschnittlicher PC - Geforce1 - Win2k - LG Flatron 1810 Monitor
vsync on: 44ms
vsync off: 35ms







Sende dein Ergebnis und Kommentare an:
Bitte entschuldige, wenn die Antwort ein paar Tage auf sich warten lässt.




Das Prog ist kein optisches Glanzstück, ist noch nicht fertig und Bugs sind nicht auszuschließen.



10.04.2005