Entrauschen an welcher Stelle?

  • Ich habe kürzlich ein paar Entrausch-Versuche mit einem interlaced Video gemacht. Es gibt ja mehrere Möglichkeiten (Filter, Parameter etc.), wie ich ein Video entrauschen kann und wie eine Vorfilterung in AviSynth aussieht.

    Ich kann das Video so, wie es ist, entrauschen (also interlaced), ich kann es nach einem SeparateFields() entrauschen oder ich kann es nach einem „Bobber“ wie z. B. Yadif(mode=1) entrauschen, um nur ein paar Möglichkeiten aufzuzählen. Dies hängt mit Sicherheit auch mit der verwendeten Entrauschmethode zusammen, also ob es sich um einen spatialen oder temporalen Filter handelt.

    Ich habe jetzt nur einen Schnellversuch mit FrFun7 unternommen. In dem mir vorliegenden Video („Autoverfolgungsschwenk“) – welches ja eigentlich nicht entrauscht werden muss - konnte ich jedenfalls nicht immer eindeutig sagen, welche Methode die bessere sei. Es gab Stellen, wo mal die eine und mal die andere Methode Vorteile brachte. Die besten Resultate schien mir aber die Methode mit Yadif(mode = 1) zu bringen.

    Das Script sah dabei in etwa wie folgt aus:

    Wobei ich, um besser vergleichen zu können, gleich nach dem Laden des Videos ein ConvertToYV12(interlaced=true) angewendet habe (die Klimmzüge mit dem Umwandeln des YUY2-Farbraumes habe ich mir bei dem Test erspart), was mit dem Verlust von Chrominanzinformationen einhergeht (FrFun7 benötigt den YV12-Farbraum). Mit obigen Script verliert man aber keine Chrominanzinformationen.

    Gibt es irgendwelche Kriterien, Empfehlungen, mit welcher Methode ein Entrauschfilter vorgefiltert werden soll? Die Board-Suche ergab eher widersprüchliche Aussagen. Vermutlich liegt’s aber auch daran, dass man generelle Empfehlungen nicht aussprechen kann.

    Im Anhang habe ich mal ein paar Bildschirmausdrucke von einem Frame hinzugefügt. An den Dateinamen kann man erkennen, welche Methode verwendet wurde. Das erste Bild ist das Original, das zweite Bild stellt die Interlaced-Variante dar, das dritte Bild wurde mit SeparateFields() erstellt und das letzte Bild mit der Yadif-Methode.

  • Ich habe ein Ausgangsvideo. Dieses wird mit ein und demselben Filter (identische Einstellungen) mit unterschiedlichen Vorfilterungen (interlaced, SeparateFields, Yadif) entrauscht. Oberflächlich betrachtet, lassen sich zunächst kaum Unterschiede ausmachen. Der Effekt „Entrauschen“ wurde also schon mal mit Erfolg angewandt. Warum also nicht einfach die Methode für gut befinden, bei der das Zielvideo am meisten mit dem Ausgangsvideo übereinstimmt? Warum nicht einfach eine (unterstützende) SSIM-Analyse laufen lassen? Wenn die Ergebnisse nicht mit den subjektiven Eindrücken übereinstimmen, kann man die Analyse ja immer noch verwerfen. :D

    Gesagt, getan. Ich habe jetzt mal alle drei Videos durch den Procoder Express gejagt (mit völlig identischen Einstellungen). Bei der Analyse des grafischen Verlaufs der SSIM-Kurve (diese lasse ich mittlerweile direkt in Fritz Framalyzer erstellen) ergab sich folgendes: Bei Szenen mit viel Bewegung war die Yadif-Methode im Vorteil, bei Szenen mit wenig bis gar keiner Bewegung ergaben sich für die Yadif-Methode die schlechteren Werte. Genau anders herum verhielt es sich mit der Interlaced-Methode. Diese hatte bei ruhigen Bildinhalten die besseren Werte zu bieten und bei Szenen mit viel Bewegung die schlechteren.

    So gesehen, hängt die zu verwendete Methode auch sehr stark vom Inhalt ab. In diesem Fall lieferten sich die Interlaced-Variante und die Yadif-Variante ein Kopf-an-Kopf-Rennen. Die SeparateField-Methode hinkte laut den SSIM-Werten häufig ein wenig hinterher, was man auch sehr gut an den Grafiken erkennen konnte.


    Die Interlaced-Methode und die Yadif-Methode hatten den gleichen durchschnittlichen SSIM-Wert!

    Die nachfolgende Grafik – die allerdings etwas ungünstig skaliert wurde ;) – stellt eine Szene dar, wo die Kamera immer schneller mitschwenkt. Die hellgrüne Linie stellt die Werte für die Yadif-Methode dar.

    [Blockierte Grafik: http://img339.imageshack.us/img339/1020/ffausschnittmh0.jpg]

    Ich seh' schon, ich werde das etwas "handfester" testen müssen. Wenn ich einem Video mit AddGrain "Rauschen" hinzufüge und es anschließend mit den verschiedenen Methoden wieder entrausche, so habe ich eine "stabilere Ausgangslage" vorliegen.

  • Eine zusätzliche Versuchsanordnung mit einem anderen Video („Der Zoobesuch“) und dem künstlichen Hinzufügen von „Rauschen“ mit AddGrain brachte ein ähnliches Ergebnis.

    Auch diesmal habe ich mit FrFun7 entrauschen lassen. Allerdings habe ich mir diesmal AVI-Dateien erzeugen lassen. Die SeparateFields-Methode war diesmal durch die Bank schlechter als die Interlaced-Methode. Die Yadif-Methode präsentiert sich hier allerdings als durchwegs bessere Lösung.

    Frame 150 bis 407
    [Blockierte Grafik: http://img217.imageshack.us/img217/7998/derzoobesuchframe150bisfo3.jpg]

  • Was willst Du da eigentlich machen?

    Ich dachte erst Du willst die Bildgröße verdoppeln, dass beim ConvertToYv12 (Yv12 = Halbierung der Chromainformationen) keine Chromaverluste auftreten.
    Aber macht dies nicht nur Sinn wenn die Source nicht Yv12 ist?
    Dein Quellmaterial liegt ja schon im Yv12 vor.
    -> irgendwie bleibt mir der Sinn der Farbraumkonvertierungen in deinem Skript verschlossen.

    Nur so als Anmerkung die 'Yadif-Methode' nennt man i.d.R. Bobben. :)

    Cu Selur

  • Die Quelle liegt im YUY2-Farbraum vor (DV-Video). Eigentlich hätte ich mir das ConvertToYUY2() in der Anfangspassage erparen können. Ich wollte damit nur zum Ausdruck bringen, dass es sich um eine YUY2-Quelle handelt. :)

    Code
    AviSource("video.avi")
    Yadif(mode = 1)
    ConvertToYUY2()

    Mir war nicht ganz klar, wie ich einen Entrauscher wie FrFun7 – der, so weit ich weiß, ein spatialer Entrauscher ist – am günstigsten einsetze. Aus den Betrachtungen der Einzelbilder bin ich nicht so recht schlau geworden. Also habe ich mal eine kurze Sequenz einer SSIM-Analyse unterzogen und ein paar Stichproben zur Verifizierung der Ergebnisse gemacht.

    Wie sich herausgestellt hat, sollte man vorher popp… ähm… „bobben“. :zunge:

    P.S.: Interessanter Nebenaspekt: Ich habe daraufhin auch noch diverse "Bobber" einer SSIM-Analyse unterzogen. Yadif(mode = 1) macht da eine erstaunlich gute Figur.

  • "Ein guter SSIM-Wert" heißt, die Kopie ist besonders ähnlich ... ja ... im Vergleich zu welchem Original?

    Der perfekte SSIM-Wert bedeutet nicht "sieht besonders gut aus", sondern "es hat sich nichts im Vergleich zu vorher verändert". Ist das von dir so gewollt? Ich dachte, Filter sollen etwas verändern.

  • Video A ist das Original. Diesem wurde mit AddGrain ein künstliches “Rauschen” hinzugefügt. Das entstandene Video B wurde nun mit den verschiedenen Methoden (Interlaced, SeparateFields, Yadif) entrauscht. Da ich ja immer ein und denselben Filter verwendet habe, ist alleine die verwendete Methode ausschlaggebend. Dasjenige Video, dass mit den Original (Video A) die meisten Gemeinsamkeiten hat, ist vorzuziehen.

    Ich bin mir der möglichen Fallstricke durchaus bewusst. :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!