Downsampling

Einleitung

In letzter Zeit häufen sich immer wieder Fälle von Spielen, die  kein natives oder nur schlechtes Anti-Aliasing anbieten. Darunter Top-Titel, wie GTA IV, Starcraft II, Need for Speed – Hot Pursuit, Risen und viele mehr. Dies liegt unter anderem an der verwendeten Renderingtechnik, Anti-Aliasing als fehlendes Feature in der Spiele-Engine oder einfach daran, dass einige Entwickler es als unnötig ansehen. Vor allem Letzteres könnte man anhand der immer anspruchsloser werdenden Spielerschaft, dem Trend zur Konsole und der immer kürzer und gleich teuer bleibenden Spiele glauben. Zwar fällt es nicht so sehr auf, wenn das Gesamtkonzept des Spieles stimmig ist, jedoch wertet es das Spiel  optisch, als auch atmosphärisch stark ab. Eine Nischenmöglichkeit dieses Problem zu lösen, ist die unter dem Namen „Downsampling“ vor 2,5 Jahren bekannt gewordene Anti-Aliasing-Methode.

Bevor wir uns aber dem eigentlichen Thema widmen, folgen einige kurze Erläuterung dazu, was Aliasing überhaupt ist und welche Möglichkeiten es gibt, um es zu beseitigen.

Aliasing

Der Aliasing-Effekt tritt bei der Digitalisierung eines Bildes auf, die aus grob betrachtet zwei Schritten besteht. Einerseits der Diskretisierung und anderseits der Quantisierung.

Bei der Diskretisierung wird ein kontinuierliches in ein diskretes Signal überführt, was einer Zerlegung eines realen Bildes in ein Raster von Pixeln entspricht. Da es aber nicht möglich ist unendlich viele Farben darzustellen und einen stufenlosen Farbübergang zu schaffen, wird ein linearer Farbübergang auf endlich viele Farbkombinationen reduziert. Um ein virtuelles Bild zu konstruieren, ist es daher notwendig eine Abtastung des realen Bildes an bestimmten Stellen vorzunehmen. Idealerweise mit unendlich vielen Abtastpunkten, was aber nur in der theoretischen Natur möglich ist. In der Praxis ist  jedoch nur eine pixelweise, endliche Abtastung mit Mittelwertbildung möglich.

Betrachten wir den Fall der idealen Abtastung, die sich durch die diracsche Deltafunktion und dem Abtasttheorem von Shannon beschreiben lässt. Die Diracsche Funktion besagt, dass ein Abtastpunkt in einem eindimensionalen Vektorraum (Sample) ein unendlich dünner Nadelimpuls ist. Im zweidimensionalen Diracfelfd entsprechen die Koordinaten der Nadelimpulse denen der Abtastpunkte der Funktionswerte des realen Bildes.

Das Shanonnsche Theorem besagt, dass

„Ein bandbegrenztes Bild mit der kleinsten Frequenz bu und der höchsten Frequenz bv, das orthogonal mit den Abtastintervallen delta x und delta y abgetastet wird, kann fehlerfrei rekonstruiert werden, solange die Abtastfrequenzen us und vs größer sind als die Nyquist-Frequenzen 2*bu und 2*bv.“

Inhaltlich geht daraus hervor, dass im idealen Fall die Abtastfrequenz höher sein sollte als die Nyquist-Frequenz. Tritt dies nicht ein, liegt eine Unterabtastung vor und es kommt unter anderem zu einem Aliasing-Effekt. Es können z.B. dann höherfrequente Wellen als niederfrequente dargestellt werden.

Kommen wir wieder zurück zum Aliasing, welches immer auftritt, jedoch durch Annäherung an den Idealzustand verringert werden kann und somit für das menschliche Auge unsichtbar wird. Visuell in Erscheinung tritt das sogenannte Aliasing für den Spieler in Form von Moireeffekte, matschigen Texturen und Flimmern auf.

Die Ursachen des Aliasingeffektes sind:

1. „Unterabtastung“
2. „Rekonstruktionsfehler“.

Wie aus dem Vorherigen hervorgeht, können durch die Unterabtastung höherfrequente Signale als niederfrequente interpretiert und das Bild fehlerhaft zusammengesetzt werden. Für eine korrekte Abtastung ist es daher erforderlich, dass in der abzutastenden Frequenz nur Frequenzteile vorkommen, die niedriger sind als die Nyquistfrequenz.

Neben der Unterabtastung besteht jedoch noch eine zweite Art des Aliasings. Die Rekonstruktionsfehler, die durch Rundungsfehler und Mittelwertbildung zustande kommen.

Downsampling: Eine Art des Anti-Aliasing
Anti-Aliasing ist dementsprechend das Gegenstück zum Aliasing und dient zur Verringerung von Moireeffekten und Flimmern. Umgangssprachlich wird es auch Kantenglättung genannt, weil die Wirkung an Polygon Kanten in der Regel sofort sichtbar wird. Im Gegensatz zum normalen Treiber oder Ingame Anti-Aliasing basiert das hier thematisierte Downsampling nicht auf dem bekannten und komplexeren Subsampling, bei dem die Abtastrate durch pixelweise Abtastung mit Subpixeln erhöht wird. Diese höhere Datenmenge wird dann letztendlich auf das ursprüngliche Raster durch Tiefpassfilterung (Boxfilter, CFAA) herunter getastet und verbessert subjektiv das Bild. Normalerweise gehen durch eine Heruntertastung Informationen verloren, jedoch bleibt dennoch ein Mehrwert gegenüber keinem Anti-Aliasing erhalten, weil vor allem mittlere und niederfrequente Signale besser abgetastet werden.

Aber halt! Haben wir nicht gerade über Heruntertastung gesprochen, was ja eigentlich Downsampling übersetzt heißt?
Eigentlich ist Downsampling lediglich eine simple Art des OGSSAA, welches eine statische, geordnete und ineffiziente Abtastmaske verwendet, das aber intern mit einem Sample (no AA/1*AA) in einer höheren Auflösung berechnet und anschließend herunterskaliert wird.

Der Vorteil dieser Methode liegt vor allem darin, dass es überall greift, keine Unschärfe mit sich führt und in vielen Abstufungen einsetzbar ist, sowie mit Subsampling AA kombinierbar ist.
Da aber alles Gute etwas Schlechtes mit sich führt, hat auch das Downsampling einige Nachteile. Die wären beispielsweise, dass es keine offizielle Unterstützung dieses Modus gibt, es mit Windows Vista und Windows 7 nur auf Nvidia Karten einsetzbar ist, sehr viel vom VRAM beansprucht wird und es stark monitorabhängig ist, weshalb  man  keine Garantie hat, dass es funktioniert.

«»