Pixelinterpolation bei Bildtransformierungen

von Simon Bethke | 0 | 10060 Aufrufe

Anzeige Hier werben

Wie in dem Artikel Verluste bei Transformationen nachzulesen ist, gibt es bei jeder Bildtransformation in Photoshop Qualitätsverluste. Diese Verluste lassen sich ziemlich leicht erklären, wenn man bedenkt, dass nur begrenzt Bildinformationen im Ausgangsbild vorhanden sind.

Bei jeglichen Transformationen kommt es ständig dazu, das Pixel um Kommawerte (in Pixeleinheiten) verschoben werden. So kommt es, dass Photoshop für eine Ausgabe Pixel die zwischen den Eingabepixeln liegen errechnen muss. Diese Errechnung neuer Pixel nennt sich Pixelinterpolation.

Bild zu Pixelinterpolation bei Bildtransformierungen
Beispiel zur Interpolation von Pixeln

In dem obigen Beispiel wird eine Transformation (stark vergrößert) beschrieben. In der ersten Abbildung sieht man die Pixel zu wie wir es kennen. In der zweiten Abbildung sind nun die Mittelpunkte der Pixel gezeigt, die zur Berechnung interpolierter Pixel verwendet werden. In Bild drei ist das Ursprungsbild jetzt verzerrt. Wie man sieht passen die Ursprungspixel nichtmehr in das Pixelraster.

Der rote Kreis markiert eine stelle, an der man sehr schön sehen kann, dass hier neue Pixel berechnet werden müssen. Photoshop errechnet hier einen Mittelwert aus den umliegenden Eingabepixeln, die diese präzise Position nurnoch temporär im Zwischenspeicher von Photoshop haben.

Photoshop bietet drei mathematische Alghoritmen zur Pixelinterpolation:

  • Pixelwiederholung
  • Bilinear
  • Bikubisch.

Um zwischen diesen Interpolationsverfahren zu wechseln, muss man per Strg + K in den Voreinstellungen Dialog wechseln. Dort kann man dann unter "Interpolation" das Verfahren wählen.
Eine weitere Möglichkeit ist die Auswahl über den Dialog "Bild -> Bildgröße", diese Einstellung hat aber nur Auswirkungen auf das Einstellen der Bildgröße und nicht auf jegliche anderen Transformationen.

Die Alghoritmen: Pixelwiederholung, Bilinear und Bikubisch

Die Pixelwiederholung ist das wohl einfachste verfahren. Es übernimmt einfach den genauen Farbwert des dichtesten Eingabepixels. Die Pixelwiederholung eignet sich besonders, wenn ein Bild zum Beispiel auf genau 50% seiner Ursprungsgröße skaliert werden soll. Dabei erhält man durch Pixelwiederholung eine optimale Schärfe ohne jeglichen Qualitätsverlust. (sofern das Ursprungsbild nicht schon künstlich geschärft wurde)

In dem Bilinearen Verfahren wird einfach eine lineare Verbindung zwischen den Eingabepixeln errechnet, so kommt man auf mathematisch einfachem Weg zu einem relative guten Ergebnis. Das Verfahren heißt Bi-linear, weil es bidirektional durchgeführt wird. Das heißt, es wird gleichzeitig in zwei Richtungen: horizontal und vertikal angewandt.

Das Bikubische Verfahren basiert auf kubischen Splines. Diese ermöglichen die qualitativ (und universell) besten Interpolationen in Photoshop und sind dem bilinearen Verfahren in jedem Fall vorzuziehen. Mit Hilfe dieses Verfahrens erhalten Sie die weichste Interpolation.

Ein Experiment

Bild zu Pixelinterpolation bei Bildtransformierungen
Pixelinterpolation in Photoshop

In diesem Experiment habe ich ursprünglich ein Bild aus vier nebeneinander angeordneten Pixeln erstellt. Die Pixel wahren einfach schwarz - weiß - schwarz - weiß gefärbt.

In einem weitern Bild habe ich nun dieses Quellbild eingefügt und mit den drei Interpolationsverfahren hochskaliert. Die skalierten Versionen sieht man als schwarz-weiße Verläufe im Hintergrund.

Um die Interpolation (und die dahinter steckenden Spline-Funktionen) sichtbar zu machen, habe ich nun drei anfangs horizontale, gerade, rote Linien gezeichnet. Über den Filter "Filter->Verzerrungsfilter->Versetzen" habe ich nun die roten Linien so modifiziert, dass sie den Helligkeitswert der schwarz-weißen Verläufe auf der Y-Achse (vertikal) graphisch darstellen.

Schaut man sich das Bikubische Verfahren nun genau an, so erkennt man auch, dass Photoshop Randpixel anders behandelt, als Pixel die in der Mitte eines bildes liegen.

Über den Autor: Simon Bethke
macht zur Zeit eine Ausbildung zum Fachinformatiker für Anwendungsentwicklung. Im Rahmen dieser Ausbildung lernt er vor allem den Umgang mit JAVA und Oracle. Als Nebenjob arbeitet Simon nun seit 6 Jahren bei einer kleinen Webdesignfirma wo er maßgeblich am Layout und der validen, technischen Umsetzung der Webseiten beteiligt ist.
Profilseite betrachten