Frames per Second sind irrelevant

Die Leistungsfähigkeit z.B. von Grafikkarten wird oft in Bildern pro Sekunde (FPS für Frames per second) gemessen. Dabei wird unter 30 FPS angenommen, dass ein Spiel ruckelt . Das galt sehr lange Zeit als unumstößliche Wahrheit bis irgendwann mehrere Grafikkarten zusammen geschaltet wurden. Plötzlich war von „Microrucklern“ die Rede, die reinen Bilder pro Sekunde sind aber weiterhin das Maß aller Dinge – zumindest für Systeme mit einer Grafikkarte.

Faktisch zeigen allein die benötigten 30 FPS, dass das komplette Modell kaum zu gebrauchen ist: Das menschliche Gehirn kann nur 14 bis 16 Bilder pro Sekunde verarbeiten, was auch bis zu den ersten Tonfilmen im Film Standard war. Erhöht wurde die Wiederholrate dort vor allem, um die Tonqualität(!) zu erhöhen[1]. Warum aber ist ein Film mit um die 20 FPS flüssig, während ein Computerspiel über 20% mehr Bilder braucht?

Der Grund ist sehr einfach: Bei Bildern pro Sekunde handelt es sich um einen Mittelwert. Und während im Film jedes Bild immer im gleichen Abstand auf dem Schirm erscheint, kann die Berechnung in Computerspielen auch unterschiedlich lange dauern. Selbst wenn mal eine ganze Sekunde lang kein einziges neues Bild erscheint, bleibt die Framerate auf zehn Sekunden gemittelt bei 30 FPS, solange vorher und nachher jede Sekunde 33 Bilder gezeigt werden. Von einem flüssigen Spielerlebnis kann aber nicht mehr die Rede sein.

Im Film sind alle Bilder gleich verteilt, beim Spiel kann es zu Rucklern kommen.
Ruckeln entsteht, wenn zwischen Bildern zu viel Zeit gebraucht wird.

Eine einfache Lösung wäre, neben der Bildwiederholrate auch eine Standardabweichung anzugeben. Auf diese Weise arbeiten Naturwissenschaftler. Ein Kinofilm hätte hier 24±0 FPS, das oben genannte Computerspiel käme auf 30±10 FPS. Leider ist auch dieser Wert erst dann aussagekräftig, wenn man auch die Verteilung kennt. Sprich: Wie schlimm das subjektive Ruckeln ist, kann auch so nicht gesagt werden. Hätte man die Hälfte der Zeit 20 FPS, die andere Hälfte 40 FPS, käme man auf 30±11 FPS, wird aber trotz schlechterem Wert kein Ruckeln feststellen können.

Neulich habe ich[2] aber bei techreport.com eine Lösung entdeckt: Dort wird (unter anderem) die Zeit angegeben, die länger als 50 ms für einen Frame gebraucht wird. 20 FPS entsprechen genau 50ms pro Frame. Der einmalige Megaruckler von einer Sekunde würde in diesem System einen Wet von 950 ms bekommen, Kino und ruckelfreies Computerspiel bekämen einen Wert von 0 ms. Vorteil ist, dass man auf diese Weise auch sogenannte Microruckler zählbar machen kann.

So kommen eine Geforce GTX 660 Ti und eine HD 7950 auf etwa gleich viele FPS, bei der Grafikkarte mit zwei Grafikchips ist allerdings die Zeit mit „verspäteten Frames“ deutlich höher (je nach Spiel z.B. 15 ms zu 30 ms). Bekannt ist dieses Problem schon seit mindestens 2007. Damals wurde bei 3dcenter vor SLI gewarnt. Ein Nutzer berichtet, die Grafikkartenverdoppelung liefere immer zwei Bilder fast gleichzeitig, wodurch sich die Framerate natürlich verdoppelt, das Spiel aber weiterhin genau so flüssig/ruckelig bleibt wie mit nur einer Karte.

Auch wenn das Problem bei Multi-GPU-Karten mittlerweile nicht mehr ganz so schlimm zu sein scheint, halte ich es für ein Armutszeugnis, dass weiterhin an reinen FPS-Angaben festgehalten wird, obwohl diese doch in Wirklichkeit kaum etwas aussagen.

  1. [1]vgl. Bildfrequenz bei Wikipedia
  2. [2]Danke an Chemical_Brother von Linuxgaming.de für den Hinweis.