Anti-Aliasing-Filter für Zeichentrick

  • Hallo,

    ich habe wie schon in einem anderen Thread geschrieben hier ein paar Zeichentrrickfolgen bei denen ich die deutsche Spur unter eine NTSC-Vorlage legen will. Ich habe jetzt alles synchronisiert und die ursprüngliche Framerate wiederhergestellt - zumindest soweit ich mein begrenztes Fachwissen zulässt. Leider weißt die NTSC-Vorlage massive Treppen in geraden Linien auf, die billige TV-Aufnahme von der ich die deutsche Tonspur nehme ist deutlich besser (aber auch etwas matschiger), aber mit mehreren Logoeinblendungen. Ich habe jetzt mit

    Code
    LSharpAAF(StrDrk=18, ShPre=100, ShPost=280, SmPost=80, aatype="nnedi3")
    TIsophote(iterations=6, tStep=0.4, type=2, chroma=false)

    ein brauchbares Ergebnis hinbekommen, wirklich zufrieden stellt es mich aber nicht. Vielleicht geht es ja auch nicht besser. Hier hab ich ein Beispiel hochgeladen, das aber für die Framerateanpassung gedacht war, womöglich gibt es für das Anti-Aliasing bessere Stellen.

    Hier nochmal 2 Bilder, einmal ohne und einmal mit o.g. Filtern.

    mit.jpgohne.jpg

    Das Encoding läuft hier sehr langsam mit 5 bis 6fps durch. Ich nutze (da ich sonst kaum Filter einsetze) die gute alte Avisynth 2.5.8. Wäre hier eine andere, z. B. die 2.6 MT oder die 2.6 (also der Nachfolger der 2.5.8) besser geeignet? Sprich: bringt mir das ganze bei o.g. Filtern etwas?

    nel-son

    _________________________

    Zitat

    Zieht ein Bienenschwarm aus, so wird er herrenlos, wenn nicht der Eigentümer ihn unverzüglich verfolgt oder wenn der Eigentümer die Verfolgung aufgibt.


    § 961 BGB [Eigentumsverlust bei Bienenschwärmen]

    :D

    Einmal editiert, zuletzt von LigH (5. Mai 2016 um 16:25) aus folgendem Grund: Link korrigiert

  • Nur allein durch den Wechsel von AviSynth 2.5.8 auf 2.6 werden alte Plugins nicht schneller.

    Aber neue Plugins könnten vielleicht schneller werden, wenn sie die Vorteile der in AviSynth 2.6 neu unterstützten planaren Videoformate nutzen können.

    Und wenn sie zumindest vernünftig (= threadsicher) programmiert wurden, lassen sie sich mit MT auch durch Parallelisierung beschleunigen. Unabhängig davon, ob sie mit AviSynth 2.5.x oder 2.6 kompatibel sind.

    Was nun deine Filter-Auswahl angeht ... kann ich nicht viel sagen, die sind mir völlig neu. Bezüglich Zeichentrick-Optimierung hab ich bisher von anderen gelesen (*NLMeans in Varianten, LimitedSharpenFaster, FastLineDarkenMod, und nnedi3_rpow2 zum Vergrößern mit Kanten-Interpolation). Wem was besser gefällt ... Geschmackssache.

  • Ich hab o.g. Filter durchlaufen lassen, Ergebnis sieht recht gut aus. Evtl. teste ich die genannten nochmal an.

    Die Fragen wegen der Geschwindigkeit bezog sich aher auf die MT-Version. Ich habe aber festgestellt, dass das Encoding bei Verwendung von MT nicht durchläuft. Die FPS bricht massiv ein und irgendwann hängt das Encoding bei 30% fest. Ohne SetMTMode() und so weiter gehts.

    _________________________

    Zitat

    Zieht ein Bienenschwarm aus, so wird er herrenlos, wenn nicht der Eigentümer ihn unverzüglich verfolgt oder wenn der Eigentümer die Verfolgung aufgibt.


    § 961 BGB [Eigentumsverlust bei Bienenschwärmen]

    :D

  • Es gibt Plugins, die ohne Voraussicht auf parallelisierte Ausführung programmiert wurden. Sie verwenden z.B. globale Variabblen, die bei Ausführung in einer Multi-Thread-Umgebung dann unter Umständen für mehrere Kopien der laufenden Routinen die selben Daten speichern, obwohl jede Kopie einen eigenen Inhalt bräuchte. Wenn also eine Kopie einen Wert in eine globale Variable schreibt, dann liest eine andere Kopie des Plugin-Filters diesen Wert, obwohl ihr eigener vorher gespeicheter Wert dort für diese Kopie den korrekten Wert hätte. Die Filter-Kopien bringen sich also ab und zu mal gegenseitig durcheinander, und dann könnte es zu Bildfehlern oder gar zu Abstürzen kommen.

    Wer ein Plugin schreiben will, das in mehreren Threads parallel ausgeführt werden kann, ohne Probleme zu bereiten, muss die Routinen für die Filter und ihre Daten weitgehend voneinander abkapseln, möglichst "lokale Variablen" für die jeweils zugehörigen Daten jedes Filters verwenden (und sicherlich noch ein paar Absicherungen, die ich jetzt nicht auswendig kenne).

    Für alle Plugins, die sich nicht ohne Probleme im MT-Modus 2 ausführen lassen, muss man leider auf optimale Parallelisierung verzichten und testen, in welchen anderen MT-Modi für diese Filter noch ein absturz- und fehlerfreier Betrieb möglich ist.

  • Auf dem Screenshot ohne Filter sieht es so aus, als ob bei deiner NTSC-Vorlage Deinterlacing durchgeführt wurde. Wie genau hast du denn die ursprüngliche Framerate wiederhergestellt?

    Ein einfaches IVTC sollte zwar reichen, aber gerade bei diesen älteren Serien wurde oft in 30i geschnitten und editiert, sodass man ein IVTC nicht ohne ungewünschte Nebenwirkungen durchführen kann.

  • Die besten Ergebnisse hab ich aktuell mit

    Zitat

    QTGMC(preset="Slow").tdecimate(mode=2,rate=23.976)

    zuvor hatte ich einfach bob() statt QTGMC() verwendet. Wie aber in einem anderen Thread geschrieben, haben bob und andere Bobber Flackern verursacht. Das von LigH angeschprichene QTGMC arbeitet sehr gut.

    Ich habe dafür jetzt auch wieder die MT-Version von AviSynth eingesetzt. Leider liefen da ja die anderen Filter

    Zitat

    LSharpAAF(StrDrk=18, ShPre=100, ShPost=280, SmPost=80, aatype="nnedi3").TIsophote(iterations=6, tStep=0.4, type=2, chroma=false).AverageBlur(radY=1, radC=1, Y=3, U=2, V=2)

    nicht. Wie kann man denn über SetMTMode() den MT-Modus ausschalten, so dass ich während QTGMC() läuft MT nutze und danach nicht mehr?

    _________________________

    Zitat

    Zieht ein Bienenschwarm aus, so wird er herrenlos, wenn nicht der Eigentümer ihn unverzüglich verfolgt oder wenn der Eigentümer die Verfolgung aufgibt.


    § 961 BGB [Eigentumsverlust bei Bienenschwärmen]

    :D

  • Völlig abschalten lässt sich das Multithreading möglicherweise nicht, zumindest ist nicht dokumentiert, dass man das mit SetMTMode(0) könnte. Da bleibt dir wohl nur, für solch exotischen Filter etwas ausführlicher (möglichst jeden Filter in einer eigenen Zeile statt mit Punkt verkettet) zu testen, ob sie doch irgendwie funktionieren, wenn man kurz vor ihrem Aufruf höhere Modi wie den Modus 5 oder 6 einschaltet. Laut der Dokumentation klappt das eventuell wie am Beispiel des alten AviSynth-2.0-Filters PixieDust.

  • Es ist immer noch unklar, ob das Material nun hybrid ist oder reines 23.976 fps Video mit Pulldown.

    Was du momentan machst, ist ziemlich unkonventionell. Ich befürchte, dass es nicht optimal ist. :D

  • Zitat

    Wie genau hast du denn die ursprüngliche Framerate wiederhergestellt?

    Mit "QTGMC(preset="Slow").tdecimate(mode=2,rate=23.976) " hatte ich die besten Ergebnisse, vorher hatte ich einfach "bob().tdecimate(mode=2,rate=23.976) " versucht.

    Zitat

    Es ist immer noch unklar, ob das Material nun hybrid ist oder reines 23.976 fps Video mit Pulldown.

    Das weiß ich nicht. Ich habe es wie oben beschriebe gemacht und sah gut aus. Hab jetzt das Ausgangmaterial schon gelöscht.

    _________________________

    Zitat

    Zieht ein Bienenschwarm aus, so wird er herrenlos, wenn nicht der Eigentümer ihn unverzüglich verfolgt oder wenn der Eigentümer die Verfolgung aufgibt.


    § 961 BGB [Eigentumsverlust bei Bienenschwärmen]

    :D

Jetzt mitmachen!

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