Untersuchung des Testverfahrens einer Input-Lag-Messung
4/12

0
3931

Monitore

Für diesen Test wurden selbstverständlich unterschiedliche Monitore herangezogen, damit allgemeine Aussagen möglich werden und nicht nur ein Sonderfall abgedeckt wird. Getestet wurden je ein 26 Zoll NEC 2690WUXi, 24 Zoll Samsung 2494HM, 20 Zoll ViewSonic VP2030b und 17 Zoll Iiyama AS4431D TFT neben dem 21 Zoll CRT des Typs CTX EX1200, der bei allen Input Lag-Messungen als Referenz herangezogen wurde.

Hersteller Typ Native Auflösung Paneltyp Reaktionszeit [ms]
Iiyama AS4431D 1.280 x 1.024 MVA 25
NEC 2690WUXi 1.920 x 1.200 H-IPS 8
Samsung 2494HM 1.920 x 1.080 TN 5
ViewSonic VP2030b 1.600 x 1.200 MVA 8

Übersicht der verwendeten Monitore im Test

Grafikkarten

Da auch die synchrone Bildausgabe überprüft werden musste, war es erforderlich eine Reihe an Grafikkarten auszuwählen, die verschiedene Evolutionsstufen bzw. Generationen des Grafikkartenmarktes abdecken, so dass Besonderheiten und Abweichungen erkannt werden konnten.

Verwendet wurden fogende Grafikkarten: ATI 9600XT, HD2600, HD3870, HD4850 und NVidia GeForce 4 4200Ti, FX5900, 8600GT, 8800GTS. Eine GeForce 3 war leider nicht in der Lage zwei Monitore gleichzeitig mit einem Bild zu versorgen.

Auf den unterschiedlichen Computern wurden jeweils die aktuellsten WHQL-Grafikkartentreiber installiert, wobei die getestete Treiberspanne bei ATI von Version 6.2 bei der 9600XT unter Windows 2000 bis hin zu 9.5 unter Windows XP für alle moderneren Karten reicht. Für die NVidia-Karten wurde bei den Modellen Ti4200 und FX5900 der ForceWare Treiber 93.71 verwendet, wobei erstere unter Windows XP und letztere unter Windows 2000 getestet wurde. Für die neueren Karten wurden der GeForce Treiber in Version 185.85 verwendet.

Die verwendeten Computersysteme sollten keine entscheidende Rolle spielen, es wurden jedoch viele unterschiedliche Architekturen verwendet. Beginnend von einem alten AMD Duron, über Athlon XP, Athlon64, eine dual-Opteron Workstation bis hin zum Quadcore von Intel war nicht nur Prozessortechnisch eine breite Streuung der Systemkomponenten vorhanden. Somit wird verhindert, dass Besonderheiten in der sonstigen nicht untersuchten Systemhardware, der Einrichtung der Systeme und aufgespielten Software irgendwelche systematischen Fehler in den Test einfließen lassen.

Geräteübersicht

Gerätetyp Hersteller Bezeichnung Eigenschaft UVP [Euro]
Oszilloskop Tektronix DSA71254 12,5 GHz Bandbreite, vier Kanäle 94.000,00*
Tastkopf Tektronix P7508 8 GHz Bandbreite, TriMode 8.220,00*
Tastkopf Tektronix P7506 6 GHz Bandbreite, TriMode 7.390,00*
Fotoempfänger Femto OE-200-Si-SMA Variable Verstärkung 1.850,00*
Netzteil Femto PS-15-2-L Zubehör 125,00*
Monitor Iiyama AS4431D 17″ TFT 5:4 k. A.
Monitor NEC 2690WUXi 26″ TFT 16:10 1.409,00
Monitor Samsung 2494HM 24″ TFT 16:9 339,00
Monitor ViewSonic P2030b 20,1″ TFT 4:3 799,00
Grafikkarte ATI 9600XT AGP k. A.
Grafikkarte ATI HD2600XT PCIe, passiv k. A.
Grafikkarte ATI HD3870 PCIe, passiv k. A.
Grafikkarte ATI HD4850 PCIe, passiv k. A.
Grafikkarte NVidia GeForce 4 4200Ti AGP-8x k. A.
Grafikkarte NVidia 5900FX AGP k. A.
Grafikkarte NVidia 8600GT PCIe k. A.
Grafikkarte NVidia 8800GTS PCIe, G92 k. A.

Übersicht der verwendeten Geräte im Test

Das Stoppuhrprogramm

Es gibt reichlich Stoppuhrprogramme im Internet zu finden, warum muss für diesen Test eine neue Software programmiert werden?

Bisherige Stoppuhrprogramme beschränken sich darauf einen Zähler darzustellen und legen keinen besonderen Wert auf die Umgehung „üblicher“ Anzeigelimitierungen. Somit ist eine Stoppuhr im Allgemeinen schnell genug, wenn sie mit jedem neu auf dem Monitor dargestellten Bild einen neuen Wert anzeigen kann und dieser Wert auch der verstrichenen Zeit entspricht.

Eine solche Stoppuhr zu programmieren ist nicht gerade kompliziert, erfüllt aber auch nicht automatisch die Herausforderungen, die sie für einen Test des Input Lags idealerweise erfüllen sollte.

Mögliche Verfälschungen der Ergebnisse

Flash-basierte Stoppuhren

Flash hat, historisch bedingt, als Standard eine niedrige Vorgabe für die Bildwiederholrate von 12 fps, die aber natürlich angepasst werden kann. Berechnungen, also z.B. Schleifen, werden stets auch nur mit dieser festgelegten Rate durchlaufen. Es ist möglich die Framerate auf 60 Hz zu setzen, allerdings schwankt diese Rate stark um den eingestellten Wert. Zu testen ist dies z.B. mit dem Benchmarktool TeddyMark.

Interessant hierbei sind die extremen Unterschiede bei Verwendung unterschiedlicher Browser zur Darstellung der Flash-Videos. Im Internet Explorer 8 liegt die maximal erreichbare Framerate für einen Bereich von 600 x 400 Pixeln bei ca. 65 fps, während die gleiche Sequenz im Firefox bei stattlichen 120 fps läuft. Die Schwankungen der Frameraten liegen bei über zehn Prozent für beide Browser und treten sporadisch auf. Eine Veränderung der Darstellungsgröße wirkt sich spätestens dann auf die Wiedergabegeschwindigkeit aus, wenn die CPU-Auslastung bei 100 Prozent liegt, wobei die prozentualen Schwankungen erhalten bleiben.

Aufgrund der starken Schwankungen und offensichtlichen Abweichungen von der Bildschirmwiederholrate ist davon auszugehen, dass die Ausgabe eines aktuellen Bildes zwar vergleichbar selten wie die Bildschirmaktualisierung ausfällt, jedoch keines Falls mit der Bildschirmfrequenz synchronisiert ist, wodurch zusätzliche Abweichungen in der Darstellung auftreten können.

Wiederhol- und Aktualisierungsraten im Millisekundenbereich sind so nicht oder zumindest nicht mit der benötigten Präzision umsetzbar, womit Flash für die Darstellung einer geeigneten Stoppuhr eher ungeeignet ist.

2D-Bildwiederholrate

Viele Programme im 2D-Bereich sind an die 2D-Darstellung des Desktops gebunden. Dies entspricht dann einer Aktualisierungsrate des Fensterinhalts, die der üblichen Bildfrequenz von 60 Hz entspricht. Das bedeutet nach t=1/f = 1/(60 Hz) = 16,67 ms wiederum, dass trotz der vorgegaukelten Präzision von einzelnen Millisekunden nur alle 16,67 Millisekunden eine Aktualisierung der Ausgabe erfolgt. Im folgenden Text wird der Einfachheit halber stets die Angabe 16 ms als Stellvertretung für 1/60 s verwendet.

Vereinfacht verfügt eine Grafikkarte über zwei Puffer, oder auch Bildspeicher, in denen ein komplett berechnetes Bild abgelegt wird, bevor es ausgegeben wird. Ist die vertikale Synchronisation aktiviert, was im 2D-Modus üblich ist, so wird nur dann ein neues Bild berechnet und in diesen Speicher geschrieben, wenn es nötig ist. Danach liegt es dort für über 16 ms und wartet darauf abgeholt zu werden.

Fotografiert man zu einem geeigneten Zeitpunkt zwei Monitore, von denen der eine genau passend und der zweite z.B. erst nach 10 ms den Bildinhalt abruft, so zeigen beide Monitore bis zur jeweils dargestellten Zeile des aktuellen Bildes exakt den gleichen Inhalt, also auch die gleiche Zeit auf der dargestellten Stoppuhr. Ein Bild von beiden Monitoren zu einem anderen Zeitpunkt, z.B. 8 ms später, würde eine Differenz von ca. 16 ms anzeigen, da der erste Monitor bereits das nächste Bild abgeholt und bis zur Stoppuhr dargestellt hat.

Was bei der Mittelung der so aufgenommenen Werte herauskommt, hängt also nur teilweise davon ab, wie groß die Differenz durch den Input Lag tatsächlich ist, dafür aber primär, an welcher Position des Bildaufbaus man das Foto erstellt.

In dem folgenden Beispiel ist in Bereich A eine zeitliche Differenz von 0 ms abzulesen, da beide Teilbilder bereits den neuen Bildinhalt darstellen. In Bereich B beträgt die Differenz 17 ms, da rechts bereits der neue Bildschirminhalt aufgebaut bzw. dargestellt wird, während in Bereich C die Differenz wiederum bei 0 ms liegt, da beide Bildschirminhalte „alt“ sind.

Darstellung der zeitliche Differenzen bei asynchronem Bildaufbau mit V-Sync
Zeitliche Differenzen bei asynchronem Bildaufbau mit V-Sync

Bedenken Sie bitte bei der Betrachtung, dass bei bisherigen Stoppuhrprogrammen keine Bereiche zu vergleichen waren, sondern jeweils nur eines der Stoppuhrpaare sichtbar gewesen wäre. Der verschieden weit fortgeschrittene Bildaufbau war also nur in relativ seltenen Ausnahmefällen überhaupt erkennbar.

Lösung für dieses Problem

Um diesen Effekt zumindest teilweise zu umgehen, muss die verwendete Anwendung ohne V-Sync laufen und sehr hohe Bildwiederholraten erreichen. So werden die Bildspeicher ständig mit den gerade aktuell berechneten Bildinhalten überschrieben. Wenn nun ein Monitor ein Bild anfordert, so wird auch während der Zeit, in der das Bild abgerufen wird, ständig der Pufferspeicher aktualisiert. Stellt man mehrere Stoppuhren gleichzeitig auf dem Bildschirm dar, so ist die fortschreitende Aktualisierung an fortlaufenden Zeiten der untereinander dargestellten Zähler im Millisekundenbereich erkennbar.

Der Vorteil liegt nun darin, dass ein Monitor, der eine beliebige zeitliche Differenz in seiner Abholzeit zum anderen Monitor aufweist, nicht den alten Bildschirminhalt bekommt, sondern einen frisch berechneten.

Das folgende Bild zeigt einen solchen Fall. In Bereich A ist eine zeitliche Differenz zwischen den neuen Bildschirminhalten von 10 ms zu erkennen. In Bereich B ist die Differenz zwischen altem Bild auf dem linken Monitor gegen das neue Bild auf dem rechten Monitor zu erkennen. Die Differenz beträgt in diesem Bereich beträgt -7 ms, in Bereich C, der wieder zwei alte Bildinhalte darstellt, erhält man wieder die Differenz von 10 ms.

Darstellung der zeitliche Differenzen bei asynchronem Bildaufbau ohne V-Sync
Zeitliche Differenzen bei asynchronem Bildaufbau ohne V-Sync

Die entscheidende Frage ist, wie es dazu kommen kann, dass plötzlich der TFT-Monitor einen Bildinhalt vor dem CRT anzeigt. Mit den bisherigen Erklärungen für die Foto-Methode ist dies nicht in Einklang zu bringen. Zudem ist somit auch nicht erklärbar, welcher der drei Bereiche für die Bestimmung des Input Lags herangezogen werden sollte. Sollte man es sich nun einfach machen, so würde man Bereiche A und C wählen, und B aus einem nicht weiter erklärbaren Grund als ungültig zurückweisen und einfach ignorieren. Die Erklärung für dieses Phänomen wird später beim Vergleich der ausgegebenen Signale erfolgen.

Diskussion: Neuen Beitrag verfassen