Deinterlacer-Übersicht: Welcher - wofür?

  • Moin,

    ich hab da mal eine Frage ;)
    (Die Boardsuche hat erstmal nichts verwertbares ergeben ...)

    Gibt es irgendwo eine Übersicht, welcher Deinterlacer für welches Material am besten verwendet wird?
    Auf Anhieb fallen mir da folgende ein ...
    FieldDeinterlace()
    TomsMoComb()
    Yadif()
    TDeint()

    LG
    MacLeod

    PS: Die "Infoseite" von ScharfisBrain kenn ich auch, die hilft mir aber bei der Frage nicht weiter.

  • "Ich verstehe die Frage nicht...". ;) -- Mal abgesehen davon, dass man Telecine-Material gleich ausklammern muss: Das wird mit IVTC = "Inverse Telecine" (Pulldown Removal) korrigiert, nicht mit Deinterlacern; kommt aber auch nur bei NTSC vor, was wir in Deutschland ja nicht verwenden. Bleiben wir also bei regulärem Interlaced-Material.

    "Interlaced" ist eigentlich die Arbeitsweise von Wiedergabegeräten (ihren Bildschirminhalt halbbildweise abwechselnd nacheinander darstellend) oder Kameras (den Bildinhalt halbbildweise abwechselnd nacheinander aufzeichnend). Videodateiformate müssen dann den Inhalt entsprechend auch halbbild-orientiert abspeichern. Wird der Inhalt eines Vollbildes - bestehend aus zwei verwobenen Halbbildern - dann länger andauernd dargestellt, erkennt man aufgrund der abwechselnden Zeilen "Streifen", das resultierende Vollbild sieht "combed" aus.

    Deinterlacer sollte man nur verwenden, wenn man ein Wiedergabegerät hat, das seinen Bildschirminhalt vollbildweise ändert (PC-Monitor, Beamer im Progressiv-Modus), und Videomaterial hat, das verwobene Halbbilder enthält, die bei vollbildweisem Neuaufbau der Bildschirmanzeige als Streifen (combed) sichtbar werden.

    Ein Deinterlacer wird dann versuchen, die verwobenen Halbbilder aus zwei nacheinander folgenden Zeitpunkten zu einem gemeinsamen Vollbild zusammenzuberechnen.

    Das kann mehr oder weniger intelligent passieren: Blind (immer auf das ganze Bild) oder adaptiv (bereichsweise, abhängig vom Inhalt), mit oder ohne Bewegungskompensation (unter Analyse mehrerer benachbarter Halbbilder), mit oder ohne Überblendungen oder Interpolation (= Zwischenwertberechnung), mit (einfacher) Vollbild-Framerate oder (doppelter) Halbbild-Framerate - je nach dem, was das Zielformat der Encodierung und das Wiedergabesystem erlauben.

    Also noch mal kurz: Das Ziel ist bei allen Deinterlacern das gleiche, nur die Wege sind unterschiedlich. Und im Grunde hängt es kaum vom Material ab, ob der eine oder andere besser geeignet ist. Eher davon, wie störend die Nebeneffekte der Arbeitsweise (und der dabei möglichen Fehler in der Berechnung) empfunden werden.

    Vergleichen wir also mal die Arbeitsweise, soweit wir sie kennen (ich trage gern später Korrenturen nach, falls ich was nicht oder falsch erklärt habe) - kursiv = Skriptfunktion, sonst AviSynth-Kern-Filter oder Plugin:

    • Bob = Halbbild-Framerate, Interpolation jeder zweiten jeweils unbekannten Zeile des Halbbildes (am einfachsten wahrscheinlich spatial linear): Schnell, relativ fehlerarm (aber oft Detailverluste)
    • FieldDeinterlace = finde ich nicht; WarpEnterprises hostet keinen Link; so wie Bob().Select{Odd|Even}() ?
    • TomsMoComp = Halbbild-Framerate? (SearchEffort=0: "a smarter Bob"), verwendet Bewegungskompensation: Geschwindigkeit je nach Aufwand, nicht immer ganz fehlerfrei (Bewegungsartefakte möglich)
    • KernelBob / MCBob / MVBob = Halbbild-Framerate, aufwändige Interpolation mit Nutzung angrenzender Halbbild-Inhalte und evtl. Bewegungskompensation: Langsam, aber oft recht fehlerarm
    • DGBob = Halbbild-Framerate, adaptive Interpolation unter Beachtung einer kleinen Nachbarschaft jedes Pixels (Kernel): Relativ schnell, meist fehlerarm
    • (Leak)KernelDeint = Vollbild-Framerate, adaptive Interpolation unter Beachtung einer kleinen Nachbarschaft jedes Pixels (Kernel): Relativ schnell, meist fehlerarm
    • Yadif(Mod) = Wahlweise Framerate, adaptive Interpolation über Kantenerkennung (edge-directed interpolation): Ziemlich schnell, relativ fehlerarm (aber manchmal falsche Kantenerkennung)
    • TDeint = Wahlweise Framerate, aufwändige adaptive Interpolation mit Filterung, sehr detailliert konfigurierbar: Mäßig schnell, meist sehr fehlerarm (wenn sinnvoll eingestellt)
    • TempGaussMC = (Wahlweise?) Vollbild-Framerate, sehr aufwändige Interpolation durch Bewegungskompensation und Filterung: Langsam, sehr fehlerarm - optimale Qualität möglich
  • ... Und im Grunde hängt es kaum vom Material ab, ob der eine oder andere besser geeignet ist. Eher davon, wie störend die Nebeneffekte der Arbeitsweise (und der dabei möglichen Fehler in der Berechnung) empfunden werden.


    Und genau darum gehts ;)
    Die Übersicht ist schon einmal sehr informativ, da sind dann auch schon einige dabei, die ich noch nicht kenne.

    Das nächste Problem ist dann noch, wie erkenne ich, welchen Deinterlacer ich wann einsetze ... ;)

    Gibt es da was anderes/besseres, als z.B. das SOurcevideo in VDM zu öffnen und zu schauen, wie das Video aufgebaut ist?

  • Eigentlich kaum. Ob VirtualDubMod oder AvsP(mod) oder ... was auch immer dir hilft: Um festzustellen, ob Video progressiv oder auf welche Art auch immer interlaced ist, hat sich ein typisches AviSynth-Skript bewährt (schematisch):

    PHP
    ***Source("*.*")
    AssumeFrameBased()
    AssumeTFF() # oder folgende Zeile
    # AssumeBFF() # oder vorherige Zeile
    Bob()

    Das in einer schön gleichmäßig bewegten Szene wicklich Einzelbild für Einzelbild betrachten und darauf achten, welches Bewegungs-Stillstand-Muster sich ergibt. Das haben wir anderswo schon ausführlichst erklärt.

    Ob du nun einen Bobber (Halbbild-Framerate = doppelt, z.B. 50 fps) oder einen Deinterlacer (Vollbild-Framerate = einfach, z.B. 25 fps) verwendest, kommt auf den Zweck an.

  • Dann solltest du vielleicht (zur Abgrenzung) statt nur nach AvsP besser nach AvsP + AviSynth googlen ;D .

    Ach... was soll's:

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • Im englischen doom9-Forum - http://forum.doom9.org - hat "AvsPmod" einen eigenen Beitrag.

    Ist im Grunde "nur" ein Texteditor mit Syntaxhighlighting zum Bearbeiten von AviSynth-Skripten mit Video-Vorschaufenster ... bis man seine eigentlichen Vorteile kennenlernt.

  • Zum Beispiel - Benutzung eines komplexen Scriptes mit einer Zentillion von Parametern (wie z.B. MCTemporalDenoise), dann öffnet man 20 oder 30 verschiedene Tabs in AvsP um diverse Parameter-Setups zu vergleichen.

    Gleich anschließend postet man in einem Forum, warum der blöde Kram ständig abstürzt. :)

  • Was für mich im Moment unter anderem nützlich ist (ich skripte gerade ein ziemlich aufwändiges Video mit massenweisen Overlays und ImageSourcen und Einblend-Funktionen), ist die Sessionverwaltung. Damit öffne ich den Quelltext des Film-Skriptes inklusive der darin importierten Funktions-Skripte. Wenn ich so komplette Szenen als Imports auslagere, kann ich sogar die Overlays bereits ordentlich laufender Szenen auch mal mit einem "#" vor dem Import() ausblenden, und schon wird die Vorschau für die gerade debuggte Szene wieder schneller.

  • Was für mich im Moment unter anderem nützlich ist (ich skripte gerade ein ziemlich aufwändiges Video mit massenweisen Overlays und ImageSourcen und Einblend-Funktionen), ist die Sessionverwaltung. Damit öffne ich den Quelltext des Film-Skriptes inklusive der darin importierten Funktions-Skripte. Wenn ich so komplette Szenen als Imports auslagere, kann ich sogar die Overlays bereits ordentlich laufender Szenen auch mal mit einem "#" vor dem Import() ausblenden, und schon wird die Vorschau für die gerade debuggte Szene wieder schneller.

  • Akzeptiert. Aber auch dafür ist AvsP kein "muss". Geht genauso mit jedem Texteditor, der mehrere Dokumente gleichzeitig öffnen kann (NotePad++, TextPad, UltraEdit, ...) - und i.d.R. bringen die auch gleich sowas wie eine "Session-Verwaltung" (NotePad++) oder "Arbeitsbereich" (TextPad) oder "Project/Workspace" (UltraEdit) mit, damit man solche Projekte als Einheit verwalten kann.

    .

    .

    .

    (Ich hab' ja gar nichts gegen den AvsP ... hab' ihn nur noch nie gebraucht, weil ich ihn nicht brauche.) ;)

  • Nörgel, nörgel, nörgel! :motz:

    ;D

    Viel schlechter als normale Texteditoren ist er nicht. Und die integrierte Vorschau hilft sicher vor allem Einsteigern, die Bedeutung von Parametern mit den Slidern einfach mal auszuprobieren.

    Schau doch statt dessen bitte lieber mal in Antwort #2, ob du dazu noch was verbessern kannst. :ratlos:

  • Och menno, nörgeln darf man auch nicht mehr? Alles was Spaß macht ist entweder ungesund, macht dick, oder ist verboten.

    Also gut, ganz ohne Nörgeln die Augen auf Post#2:

    Vird der Inhalt eines Vollbildes - bestehend aus zwei verwobenen Halbbildern - dann länger andauernd dargestellt, wekennt man aufgrund der abwechselnden Zeilen "Streifen", das resultierende Vollbild sieht "combed" aus.

    *duckundweg*

    Zitat

    T*KernelBob / TMC*Bob / TMV*Bob = Halbbild-Framerate, aufwändige Interpolation mit Nutzung angrenzender Halbbild-Inhalte und evtl. Bewegungskompensation: Langsam, aber oft recht fehlerarm


    Diese Filter kenn' ich aber nicht ... kennen würde ich [Leak]KernelBob, MVBob und MCBob.
    "Bob" im Filternamen lässt vermuten, dass es sich um "Vollbild-Framerate" Deinterlacing handelt.

    (Bevorzuge eher die Bezeichnungen "einfache Framerate" und "doppelte Framerate", in Bezug auf Input-FPS und Output-FPS. Aber darüber wurde schon öfter gestritten, man kann's sorum oder andersrum sehen. Bei Video-Interlacing macht ja "halbe" und "volle" Framerate genausoviel Sinn.)

    *KernelBob ist eher verwandt mit Tdeint - nur deutlich "einfacher". Keine Bewegungsinterpolation.
    MVBob/MCBob sind per MVTools bewegungskompensiert.


    Mehr zum Nörg... zum Verbessern find' ich nicht. Gute Übersicht, mit kleinen Schönheitsfehlern. ;)

Jetzt mitmachen!

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