Wie deinterlace ich, wenn die Quelle zwischen Progressive und Interlaced wechselt ?

  • Hi Leute

    Mit der SUFU konnte ich kein passendes Thema finden, obwohl ich sicher bin das es eines geben sollte.

    Ich habe hier ein MPG-Video, welches dauernd zwischen Progressiv und Interlaced hin und her wechselt. Zusätzlich gepaart mit einigen Ghostframes.

    Die Ghostframes kann man ignorieren, sieht man beim schauen kaum, aber das Interlacing sehr wohl.

    Oftmals ist es so, das eine Szene noch progressiv ist, und die nächste (Kamerawechsel) dann auf einmal interlaced.
    Oft kommt es anber auch vor, das z.B. mitten in einem Schwenk der Wechsel statt findet.

    Ich habe nun einige Deinterlacer durch aber mit keinem Ergebnis zufrieden.
    Tdeint funktioniert zwar wunderbar (und es entstehen beim deinterlacen auch keine unschönen Kanten), jedoch ruckelt es manchmal wenn innerhalb der Szene der Wechsel stattfindet.

    Beim normalen Deinterlacen (FieldDeinterlace) ist dieses nicht, aber es gibt unschöne Kanten durch das Deinterlacen.
    Die progressiven Frames würde ich natürlich wegen der Qualität gerne unbehandelt lassen bzw. die Qualität beibehalten. Die interlacden sollten aber "Stufenfrei" und möglichst scharf und ohne nachziehen gewandelt werden.

    Wie kriege ich hier das Problem gelöst? Welche Filter benötige ich ?

    MFG
    Marco

  • i=avisource(2blah.avi")
    i.tfm(edeint=i.yadifmod(edeint=i.nnedi()))


    tfm ist ein fieldmatcher, der nur dann auf einen deinterlacer (yadifmod) zurückgreift, wenn die frames auch interlaced sind.
    nnedi ist der interpolator der die treppcheneffekte vermeidet für den deinterlacer (yadifmod)

  • Progressiv<>Interlaced - Wechsel *innerhalb* einer Szene hat man üblicherweise eigentlich nicht. Könnte sich evtl. um eine DEFT Normwandlung handeln. Falls ja, Scripte für DEFT-gewandeltes Material hatten wir schon. Scharfis_brain und MOmonster sind die Spezialisten dafür. :)

  • Ständig wechselt ... in einem offensichtlichen Muster, z.B. je 12 und 13 Frames?

    Dann sollte man vielleicht gar nicht deinterlacen, sondern einen passenden Pulldown durchführen (ich erinnere mich da an "exotisches Interlacing" und eine 24/25-fps-Konvertierung mit je einem Extra-Field pro halbe Sekunde).

  • Ich danke Euch für die Antworten.

    Natürlich dumm von mir Euch so rätseln zu lassen ... ich war nur extrem verärgert darüber, das man für soviel Geld son Mist aufgetischt bekommt.

    Kommt die Filmindustrie mit ihrem eigenem Medium nicht klar? Da kann ja jeder Home-Video-Filmer konformere Ergebnisse erzeugen und das ohne zig-tausend Euro teure Spezial-Hardware.

    Im Anhang mal ein 67MB großes Muster. Dort sind beide Fälle vorhanden, einmal der Wechsel innerhalb einer Szene und dann halt mit dem Wechsel einer Szene.
    Es ist definitv kein Muster zu erkennen ... alles willkürlich ... also leider nix genormtes.

    In anderen Episoden ändert sich sogar noch zusätzlich TFF nach BFF ... :nein:

    Das Problem ist, das es bei den Szenen wo innerhalb der Wechsel von Progressiv nach Interlaced (und auch wieder zurück) erfolgt durch das deinterlacen ein Doppelbild entsteht und es dadurch zu dem Ruckeln bzw. Stottern kommt.

    MUSTER

    MFG
    Marco

  • Meiner Treu, was war RapidShare gestern abend wieder schell. 22K/s = dreifache Modemgeschwindigkeit!

    @ LigH - stimmt, Field Pulldown wäre auch noch ne Möglichkeit (gewesen), das hatte ich gedanklich ausgeblendet.

    Das Sample zeigt aber recht eindutig eine DEFT-Wandlung. - Wünsche viel Spass, dieses Zeug ist richtig unangenehm, wenn man ein sauberes PAL rekonstruieren möchte.

    Das hier müsste eigentlich der passende Thread sein.

  • Eine typische DEFT-Wandlung ist das hier aber nicht. Falls man sowas wie typisch in diesen Zusammenhang überhaupt sagen darf.
    Dieses Skript arbeitet zumindest zufriedenstellend. Vielmehr ist aus der Source nicht rauszuholen:

    Code
    tdeint(mode=1,tryweave=true)
    tdecimate(rate=25,mode=2)


    Das Ghosting bleibt zwar, aber um gut erkennbare Mischbilder handelt es sich hier sowieso nicht.
    Du kannst natürlich die ganze Palette an möglichen Funktionen (repair_DEFT, unDEFTmatcher, mrestore und srestore) testen. Da deren Erkennung aber nur bedingt greift (falls überhaupt) und versucht wird irgendeinen Pattern zu folgen, kann ich jetzt schon sagen, dass du mit den Resultaten wohl weniger glücklich sein wirst.

  • Wie ich gerade rausgefunden habe haben mir hier wohl die "Meister des Interlacings" persönlich geholfen :daumen:

    Also das was ich mit dem Skript von MOmonster erreiche ist schon vollkommen ausreichend.

    Mehr gibt die Source leider eh nicht her, die Quali ist nicht gerade berauschend (obwohl es noch schlechteres gibt).

    tdecimate war hier wohl der Punkt der mir noch fehlte, ich hatte nur Tdeint benutzt und da gab es halt noch diese Doppelbilder durchs deinterlacen.

    Mit dem Ergebnis hier kann ich voll und ganz leben.

    Ich frage mich zudem warum man die Sache des Interlacens so kompliziert machen muss ... das wird aber wohl ein Geheimnis der "Industrie" bleiben.
    Zu DEFT konnte ich sogar nur mit langer Suche ganz wenig Infos finden.
    Scheint ein ziemlich sinnloses hin und her gewandel zu sein, naja ...

    Ich danke Euch beiden für die Hilfe, ich werde jetzt mal einige Episoden mit dem Skript versuchen, es scheint ja sehr gut zu funlktionieren.

    MFG
    Marco

  • Mit einem kleinen Postfiltering-Skript könnte man sogar noch etwas Blurring (Ghosting) entfernen (nur an einigen Stellen). Wären zwar nur zehn Minuten für so ein Skript notwendig, aber im Moment fehlt mir einfach die Lust dazu.:zunge:
    Vielleicht morgen.

  • Habe heute früh etwas mehr Muße. Hier ist das Skript:


    Effektiv werden im gesamten Sample vielleicht 20 bis 30 Frames leicht verändert. Das macht sich weder beim Schauen noch beim kodieren bemerkbar.
    Man kann die Funktion also auch weglassen. Da sie recht flott arbeitet spricht allerdings auch nichts dagegen sie zu verwenden.

  • Ich weis nicht was ich sagen soll!

    ! DANKE !

    Für Dich waren es vielleicht 10 Minuten für mich wäre das nen Jahr gewesen ...
    Avisynth ist sehr mächtig, aber dadurch leider auch sehr unübersichtlich. Für jemanden der einmal im Jahr mal Avisynth braucht ist es unmöglich sich da komplett einzuarbeiten, geschweige denn von der Programmierung.

    Hab mir mal Tdecimate angeschaut und selbst wenn ich vorher die englische Beschreibung gelesen hätte, wäre ich der Meinung gewesen, das es damit nicht geht ... bei "Mode=2" steht z.B. das die Framerate vom Ausgangsmaterial immer kleiner als die des Eingangsmaterials sein muß. Nun ja, ... es funktioniert und nochmal ein ganz großes Dankeschön für Eure Hilfe.

    MFG
    Marco

  • Zitat

    Hab mir mal Tdecimate angeschaut und selbst wenn ich vorher die englische Beschreibung gelesen hätte, wäre ich der Meinung gewesen, das es damit nicht geht ... bei "Mode=2" steht z.B. das die Framerate vom Ausgangsmaterial immer kleiner als die des Eingangsmaterials sein muß.


    Ist ja auch bei diesem Script der Fall.
    Das Eingabevideo für TDecimate hat 50fps, denn TDeint(mode=1) macht aus dem interlaced-video ein Video mit 50fps Vollbildern.

Jetzt mitmachen!

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