Doppelte Frames nach tdeint entfernen

  • Ich habe hier die Sam&Max DVD die qualitativ ziemlich schlecht ist. Mit Hilfe der Filter aus diesem Thread habe ich ein recht ansehnliches Ergebnis bekommen. Allerdings mit einer Framerate von 59,97 (statt vorher 29,97) und sehr vielen doppelten Frames, teilweise sind zehn hintereinander fürs Auge identisch.

    Ich kenne mich mit Deinterlacing nicht wirklich gut aus, daher kenne ich kein Plugin dass diese Frames entfernen kann. Per Google bin ich auf tdecimate gestoßen, ohne Argumente hat es aber nichts getan als die Rate auf etwa 47fps zu senken, es sind immernoch Mengen an Duplikaten vorhanden.

    Wie kriege ich die am besten entfernt?

    Das Deinterlacing habe ich so gemacht:
    tdeint(order=1,mode=1,type=2)

  • So, ich habe etwas rumprobiert:

    Ganz simpel per fdecimate(rate=29.97) führt zu sehr starkem Ruckeln (das im Original allerdings auch vorhanden ist). Ich habe dann MultiDecimate versucht, der mit threshold=1.0 ein deutlich glatteres Ergebnis liefert, bei ebenfalls auf etwa die Hälfte reduzierter Zahl an Frames. Also schon ein deutlicher Forschritt.

    Aber ganz ohne Ruckeln geht es auch hier nicht.

    Wenn ich Interlacing richtig verstanden habe, dann ist es gar nicht möglich bei gleicher Zahl an fps ein ruckelfreies Video zu bekommen, vor allem da die Quelle auch schon ruckelt. Oder gibt es irgendeine Möglichkeit die fps wenigstens etwas runterzukriegen? So müsste ich nämlich bei um die 3000bps kodieren.

    Hier mal ein Ausschnitt aus der Quelle (edit: Falsches Sample, neues gibts hier)

  • Wird sowieso mit x264 kodiert, daher wäre vfr kein Hinderniss.

    So ganz habe ich vfr ehrlich gesagt nicht verstanden, klingt auf den ersten Blick simpel - je Zeit werden unterschiedlich viele Frames entfernt und die Framerate entsprechend angepasst - aber ich habe dann viel zu Hybridquellen gelesen, wo 23.9 und 29.9 fps gemischt wären. Das war ja aber bei mir nicht der Fall.

    Gibt es denn einen Filter der einfach nur doppelte Frames entfernt und dabei Gebrauch von vfr macht?


    Achja, falls das was hilft. Ich habe mir die Quelle nochmal mit SeperateFields angeguckt und es gibt immer vier identische Fields und dann ein Field mit Bewegung. Danach wieder vier Fields die identisch sind und darauf folgend eins mit Bewegung. Also so:

    tb tb Tb tb tB tb tb Tb tb tB (wobei die Großbuchstaben immer Bewegung bedeuten sollen)

    Kann man daraus irgendwie eine Empfehlung abgeben wie man am besten zu einem ruckelfreien Video mit halbwegs niedriger Framerate kommt? Irgendwie müsste man doch die sich wiederholenden Frames rauswerfen können, dann hätte man schonmal 20% Ersparnis.

    Wobei ich die Anordnung sowieso nicht ganz verstehe. Beim Abspielen werden daraus immer vier saubere Frames und einer mit Zähnchen. Wenn beim Abspielen immer t und b zu einem Frame zusammengefasst werden, dann müsste man doch sauber - sauber - zähnchen - sauber - zähnchen - sauber - sauber ... bekommen, oder?

  • Zitat

    Gibt es denn einen Filter der einfach nur doppelte Frames entfernt und dabei Gebrauch von vfr macht?


    1. Quelle bobben <- je nach Quelle und Ansprüche würde ich hier unterschiedliche Bobber antesten
    2. DeDup verwenden (Forensuche sollte da auch helfen)

    Cu Selur

  • a) Quelle = 60 Fields/sec
    b) Pattern = jedes 5. Field enthält 'neue' Information

    a+b = c) 60 / 5 = 12

    => Mit Dezimierung auf 29.97 wird wenig Freude aufkommen. Die Ziel-Framerate sollte 24000/1001 oder 12000/1001 betragen.

  • Pro Sekunde kriege ich also aus der Quelle 12 neue Fields, die restlich 48 sind Wiederholungen, oder? Wenn ich dann für jedes Field mit neuen Informationen einen Frame erstelle, dann müsste ich doch mit 24fps gut fahren, wobei jeweils zwei Frames identisch wären. Stimmt das so?

    Wäre nur die Frage, wie sage ich das dem Deinterlacer?

  • So, jetzt hab ich mal das Sample aus der 2.Post in die Mangel genommen. (Gerade erst entdeckt, dass ein Sample gepostet wurde...)

    Bur, Deine 'Analyse' :

    Ich habe mir die Quelle nochmal mit SeperateFields angeguckt und es gibt immer vier identische Fields und dann ein Field mit Bewegung. Danach wieder vier Fields die identisch sind und darauf folgend eins mit Bewegung.

    ist falsch, zumindest für das gepostete Sample.
    In 5 Feldern sind nicht 4 identische & 1 neues Feld, sondern 2+3 Felder enthalten. Es scheint sich somit um stinknormales Telecine zu handeln, und das Ding wurde mit 24fps animiert, nicht mit 12fps (zumindest die gepostete Szene, viele Animationen wechseln ja zwischen 12fps und 24fps hin-und-her, je nach Bedarf).
    Anstatt also großartig manuell mit verschiedenen Deinterlacern & abenteuerlichen Dezimierern herumzubasteln, hab' ich einfach mal ein Standard-IVTC ausgeführt:

    Code
    ...Source("test_(bur).dga")
    [i]AssumeTFF()[/i]
    TFM()
    TDecimate()

    Das Ergebnis sieht 100% korrekt aus. Feierabend.


    Edit: AssumeTFF() hinzugefügt. Die Quelle ist eigentlich fieldbased/TFF, wurde aber als progressives AVC (d.h. ohne Parität) enkodiert ... das ist Murks, weil Avisynth dann automatisch BFF "vermutet". TFM kann mit sowas zwar recht gut umgehen, aber mit AssueTFF ist's einfach "richtiger". (<-Unwort!)

  • Erstmal danke für die Hilfe, ich habe aber ein falsches Sample gepostet, da hatte ich die DVD-Quelle schonmal testweise als x264 kodiert. Da sind es tatsächlich (obwohl keine Filter bei avs) immer 2/3 Fields. Im Original aber 4 identische, dann ein bewegtes. Tut mir sehr leid, dachte nicht, dass einfaches kodieren schon soviel ändert.

    Ich habe das ganze jetzt mal als unkomprimiert und im avi-Container gespeichert. Damit kann man mit SeparateFields gut das Muster erkennen.

    SAMPLE


    edit: Es wird noch etwas komplizierter, in Szenen mit viel Bewegung sind es manchmal nur 2 identische Fields und ich konnte gar kein Muster mehr ausmachen. Werde dazu wenn ichs schaffe, morgen noch ein Sample hochladen.

Jetzt mitmachen!

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