Wie wählen Sie die optimale Anzahl von Abgriffen in einem Bildskalierungsfilter mit Fenster aus?


7

Ich versuche, ein Bild mit einem Filter zu skalieren, und zum größten Teil habe ich etwas, das anscheinend funktioniert. Aber jetzt möchte ich in der Lage sein, einen Filter mit einer optimalen Anzahl von Abgriffen zu erzeugen. Ich weiß im Allgemeinen, dass je mehr Wasserhähne, desto besser. Es gibt jedoch immer weniger Renditen, um wie viel jedes zusätzliche Tippen die Bildqualität erhöht. Wie würde man also eine Reihe von Abgriffen auswählen, die einen guten Kompromiss zwischen Implementierungskomplexität und Bildqualität darstellen? Gibt es Standardmessungen, mit denen verschiedene Filter zu einem "idealen" Filter ausgewertet werden können?


Wenn ich mehr darüber nachdenke, denke ich, dass dies wirklich zwei Fragen sind. Eine Frage ist die Entscheidung, welches Fenster verwendet werden soll (in diesem Fall habe ich mich bereits für die Verwendung von lanczos2 oder 3 entschieden) - dies ist eine allgemeinere Frage, die je nach Anwendung verschiedene Kompromisse aufweist. Sobald diese Entscheidung getroffen ist, kann die Anzahl der Abgriffe leicht bestimmt werden. Für lanczos2 beträgt die ideale Anzahl von Taps 4 und für lanczos3 die ideale Anzahl von Taps 6. Der Grund, warum es nicht 5 oder 7 ist, ist, dass einer dieser Taps aufgrund der Fensterung immer Null ist.

Im allgemeineren Fall denke ich, dass die einfache Möglichkeit, anzugeben, wie viele Abgriffe für ein bestimmtes Fenster erforderlich sind, darin besteht, einfach zu sagen:

taps = max - min

Im Fall von lanczos2 ist das Maximum 2 und das Minimum -2. Daher ist taps = 4.


Dies sollte auch als Community-Wiki-Beitrag markiert werden. Ich habe hier noch nicht die Möglichkeit dazu, daher würde ich es begrüßen, wenn jemand anderes es für mich so markieren kann.
Dennis Munsie

Warum möchtest du dies zu einem Community-Wiki machen?
Phonon

Was meinst du mit sinkenden Renditen ?
Phonon

@Phonon Ich gehe davon aus, dass es keinen richtigen Weg gibt, um die Anzahl der Taps zu wählen. Daher sollte es sich um ein Community-Wiki handeln, da es mehr als eine Antwort geben wird.
Dennis Munsie

1
Wenn Sie nach einer "optimalen" Lösung suchen, müssen Sie ein Optimalitätskriterium angeben. Für welche Anwendung planen Sie die Verwendung? Was sind die Hauptbeschränkungen Ihrer Plattform?
Jason R

Antworten:


1

Bis zu einer gewissen Bittiefe quantisierte Bilder weisen aufgrund der Quantisierung einen Fehler auf. Ihr Filter führt auch zu Fehlern im Vergleich zur Verwendung eines unendlich großen idealen Filters. Wenn Sie immer größere Filter verwenden, gelangen Sie schließlich zu einem Knie im Diagramm Gesamtfehler gegen Filtergröße, bei dem diese beiden Fehler gleich sind. Danach dominiert der Quantisierungsfehler, sodass es sich nicht viel auszahlt, um den Filter weiter zu verbessern.

Eine häufig verwendete Fehlermetrik ist das maximale Signal-Rausch-Verhältnis .


Gute Antwort @Olli, aber wird das nicht mit erweiterten Präzisionsakkumulatoren angegangen? (Natürlich können wir nicht unbegrenzt verlängern, vielleicht ist das die Einschränkung, aber wir können zwischen den Stufen skalieren und die akkumulierten Fehlerterme immer noch ausreichend unter unserem Datenpfad-Quantisierungsrauschen halten)
Dan Boschen

Also kein Streit um das, was Sie gesagt haben, sondern eher eine Frage, um mein eigenes Verständnis zu bestätigen: Wenn Sie erweiterte Präzisionsakkumulatoren zulassen, sehen Sie immer noch ein Knie, wenn Ihre Filtergröße zunimmt (nehmen wir an, wir können uns bei log2 (N) unbegrenzt verlängern).
Dan Boschen

@DanBoschen Ich meine den Quantisierungsfehler, den jemand anderes in das Originalbild eingebrannt hat.
Olli Niemitalo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.