Bilineare Filterung - LinkFang.de





Bilineare Filterung


Die bilineare Filterung oder bilineare Interpolation ist eine Erweiterung der linearen Interpolation, um Zwischenwerte innerhalb eines zweidimensionalen rechteckigen Gitters zu bestimmen. Sie wird häufig als Grafikfilter zur Skalierung von Rastergrafiken und zur Darstellung von Texturen bei gerenderten Bildern verwendet.

Mathematische Beschreibung

Es wird angenommen, dass der Wert [math]f(x,y)[/math] einer Funktion [math]f[/math] an einem Punkt [math]P=(x,y)[/math] bestimmt werden soll. Dieser soll weiterhin von vier fixen Rasterpunkten [math]Q_{1 1} = (x_1, y_1),[/math] [math]Q_{1 2} = (x_1, y_2),[/math] [math]Q_{2 1} = (x_2, y_1)[/math] und [math]Q_{2 2} = (x_2, y_2)[/math] umgeben sein. Um den Wert [math]f(P)[/math] näherungsweise (durch lineare Interpolation) zu bestimmen, wird zunächst in eine festgelegte Richtung (horizontal oder vertikal, hier horizontal) zwischen den Rasterpunkten linear interpoliert. Dabei sind [math]R_1[/math] und [math]R_2[/math] Stützpunkte zwischen den in horizontaler Richtung liegenden Rasterpunkten.

[math]f(R_1) \ \approx \ \frac{x_2 - x}{x_2 - x_1} f(Q_{1 1}) + \frac{x - x_1}{x_2 - x_1} f(Q_{2 1}) \quad \text{ mit } R_1 = (x, y_1),[/math]
[math]f(R_2) \ \approx \ \frac{x_2 - x}{x_2 - x_1} f(Q_{1 2}) + \frac{x - x_1}{x_2 - x_1} f(Q_{2 2}) \quad \text{ mit } R_2 = (x, y_2).[/math]

Nach dem gleichen Verfahren wird anschließend zwischen den Werten dieser beiden Punkte interpoliert.

[math]f(P) \ \approx \ \frac{y_2 - y}{y_2 - y_1} f(R_1) + \frac{y - y_1}{y_2 - y_1} f(R_2).[/math]

Sind die Rasterpunkte der Funktion [math]f[/math] in regelmäßiger Form [math](0, 0),[/math] [math](0, 1),[/math] [math](1, 0)[/math] und [math](1, 1)[/math] gegeben, so reduziert sich die Gleichung zu

[math]f(x, y) \ \approx \ f(0, 0) (1-x) (1-y) + f(1, 0) x (1-y) + f(0, 1) (1-x) y + f(1, 1) x y.[/math]

Diese Gleichung lässt sich in Matrixschreibweise wie folgt zusammenfassen.

[math]f(x, y) \ \approx \ \begin{bmatrix} 1-x & x \end{bmatrix} \begin{bmatrix} f(0, 0) & f(0, 1) \\ f(1, 0) & f(1, 1) \end{bmatrix} \begin{bmatrix} 1-y \\ y \end{bmatrix}[/math]

Eine Erweiterung dieses Verfahrens um eine zusätzliche dritte Dimension wird als trilineare Interpolation bezeichnet.

Anwendung in der Computergrafik

Bei bilinearer Filterung werden die der Sample-Mitte am nächsten liegenden vier Farben in jeder Achse (u und v) jeweils linear interpoliert. Dazu werden zunächst die beiden Werte zwischen den oberen und den unteren Texeln entlang der u-Achse linear interpoliert. Diese beiden Werte werden anschließend entlang der v-Achse linear interpoliert. Diese zweistufige lineare Interpolation gibt der bilinearen Interpolation ihren Namen. Die Anteile sind dabei nur von der Abtastposition abhängig, nicht jedoch von der Größe der Projektion des Pixels in den Texturraum. Dies führt zwar bei einer Minifikation (die Textur wird stark gestaucht) zu Abtastfehlern, weil zu wenige Texel beachtet werden, wirkt jedoch bei einer Maxifikation (die Textur wird stark vergrößert) glättend, da hierbei bei jedem Pixel dieselben vier Nachbartexel betrachtet, jedoch unterschiedlich gewichtet werden. Anschaulich gesprochen werden die Texel stärker gewichtet, deren Mittelpunkt näher an der Sample-Mitte liegt, wobei immer alle vier benachbarten Texel betrachtet werden.

Eine besondere Bedeutung kommt der bilinearen Filterung beim Echtzeitrendering auf modernen Grafikkarten zu. Hierbei ist die bilineare Filterung ein gebräuchliches Verfahren zum Antialiasing von Texturen. Bilineare Interpolatoren lassen sich durch kaskadierte lineare Interpolatoren schaltungstechnisch vergleichsweise einfach realisieren.

Würde man die Textur per Point Sampling skalieren, würde man die Texel als kleine Blöcke erkennen, sodass das Resultat sehr „pixelig“ und unschön wäre. Dieses Verfahren fand bei alten Computerspielen, deren Grafik rein von der CPU berechnet wurde, statt.

Grafikprogramme bieten in der Regel auch bikubische Filterung an. Dies vergrößert den Rechenaufwand erheblich, aber liefert in vielen Fällen bessere Qualität.

Weitere Filterungen

Weblinks


Kategorien: Bildverarbeitung | Numerische Mathematik

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Bilineare Filterung (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.