Normwandlung klappt nicht ruckelfrei

  • Folgendes Problem: Ich habe ein Video, das ursprünglich NTSC Material war, aber nach PAL gewandelt wurde. Nun versuche ich das richtig zu deinterlacen. Habe mich daher mit mrestore beschäftigt. Hier mal mein Script:

    mpeg2source("D:\Temp\VTS_01_1.d2v")
    import("D:\Temp\R_Pack\Mrestore.avs")
    import("D:\Temp\R_Pack\Cdeblend.avs")
    d = last.bob(-0.2,0.6).reduceflicker(strength=1)
    tdeint(mode=1)
    mrestore(mode=-4,dup=1,dclip=d)
    Cdeblend()

    Das Deinterlacen klappt damit auch prima, Bild ist wieder progessiv und hat die ursprüngliche Framerate von 23,98. Auch Blends sind nicht mehr vorhanden. Allerdings ruckelt das Bild sehr stark. Hab mal ein Beispiel hochgeladen, Sample

    Nun, woran könnte das liegen, stimmt was bei dem Script nicht?

  • Hallo
    Hab nur kurz geschaut.
    Es sieht so aus dass Frames fehlen und zwar zwischen

    1-2
    5-6
    9-10
    13-14
    16-17
    21-22
    -----
    -----
    Taste Dich mal Einzelbildweise vor in VDub.

    25p ruckelt immer mehr oder weniger.Einer siehts sofort die Anderen störts nicht.Bestes Beispiel "Stargate" TV Sendung.:D

    Selber setze ich hier nur Avisynth ein wenn`s meine Tools nicht in die Reihe kriegen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Sieht tatsächlich so aus, aber eigentlich kann das ja nicht sein, dass da Frames fehlen, bei der Originaldatei ist das nicht der Fall. Also löscht mrestore da zu viel oder wie? Die fehlenden Frames müsten ja die Ruckelursache sein.

  • Wenn das Video nach einer Normwandlung ruckelt, war es die falsche Normwandlung.

    Du hast anscheinend nur noch 4 von 5 Bildern. Wenn IVTC angebracht gewesen wäre, sollte es nicht der Fall sein, ein Ruckeln zu sehen.

    Wir sollten uns das Original-Material vielleicht noch mal zusammen anschauen.

  • Also wenn du Cdeblend nach mrestore entfernst, sollte das schon einige Probleme lösen (keine echten Dups). Entweder Cdeblend + Dezimierer oder mrestore bzw restore24, aber nicht zusammen. Und jetzt noch |mode|<4, dass bringt eine etwas bessere Dezimierung.

    Achja, das kodierte Sample ist nur selten brauchbar oder notwendig, um die richtigen Einstellungen zu finden wird das Ursprungsmaterial benötigt.

  • Ist wirklich nicht so einfach zu erkennen. Die Quelle ist fieldshifted bei 50fps. Anstelle des Bobbers muss ein Fieldmatcher verwendet werden. Dann muss man auch noch erkennen, dass die Ausgabeframerate 29.97fps und nicht 23.976fps betraegt und dafuer die richtigen Parameter setzen. Anschließend kommt man dann auf so ein Skript:

    Code
    tfm()
    mrestore(numr=600,denm=1001)


    Mrestore entfernt beim Dezimieren auch die Blends, ist allerdings nicht in der Lage Duplikate als Blends zu erkennen. Weil beim Bobben deiner Quelle jedes Bild mindestens ein Duplikat hat, greift die Erkennung nicht, solange nicht dezimiert wurde.

    Das ist allerdings ein sehr seltenes Exemplar.;)

  • Irgendwas scheint da nicht zu stimmen. Wenn ich das Script benutze, bekomme ich 14,98 Frames und es ruckelt ziemlich stark. Außerdem erscheint hin und wieder auf dem Bild
    Select: Index value out of range
    (D:\Temp\R_Pack\Mrestore.avs, line 106)
    ([ScriptClip], line 47)
    Was hat das zu bedeuten? Wirklich sagen tut mir das nichts.

  • Mein Fehler!
    Hatte irgendwo in meinem Script noch 'nen Bobber übersehen und dachte jetzt: Wunder, welch eine Raritaet.
    Statt tfm() also einfach einen Bobber:

    Code
    tdeint(mode=1)
    mrestore(numr=600,denm=1001)

    Edit:
    Benutzt du die letzte Version von mrestore (hochgeladen vor einer Woche oder so)?

  • Wow, mit dem Scirpt läuft das Bild wahnsinnig flüssig, ohne Ruckler und Blends, Hammer!:) Allerdings erscheint diese merkwürdige Meldung immer noch:
    Select: Index value out of range
    (D:\Temp\R_Pack\Mrestore.avs, line 106)
    ([ScriptClip], line 47)
    Hab jetzt auch die neueste mrestore Version, aber die Einblendung bleibt trotzdem. Wo könnte da das Problem sein?

  • Muss mich doch nochmal melden. Hab noch eine Szene gefunden, bei der die Normwandlung doch nicht so richtig klappt, hier das Originalfile:Sample
    Das gibt immer ziemliches Geruckel in der encodierten Version. Könnte es villeicht auch sein, dass diese Szene gar nicht besser zu bekommen ist? Schließlich funktioniert das Script ansonsten perfekt.

  • Ich mag keine hybriden Quellen.
    Wenn du mrestore mit standard settings (mrestore()) drueber laufen lässt, ist die Ausgabe fluessig mit 23.976fps.
    Würde das wahrscheinlich mit 3:2-Pulldown auf 29.97fps raufrechnen lassen und so komplett kodieren. Der mkv-Container soll ja auch hybride Frameraten erlauben. Wie man das denn alles allerdings am besten zusammen bringt, weiß ich selber nicht.

    Vielleicht hilft ja das hier weiter.
    Ansonsten weiß ja vielleicht ein anderes Forenmitglied um besseren Rat.

  • Wie funktioniert das mit dem 3:2 Pulldown auf 29,97fps? Ich kann leder nur Sachen finden, mit denen ich die Framerate runtersetze, aber nicht hochbringe.

    Allso wenn ich das bei AnimeIVTC richtig verstanden habe, ist bei Hybridem Material manchmal 30fps progressives Materal dabei. Daher auch die 29,97fps, anstatt 24,97 oder? Und progressives Material nochmal mit einem deinterlacer zu bearbeiten vertägt sich nicht und gibt dann wohl die Ruckler. Leider gibts AnimeIVTC ja bisher noch nicht für PAL.

  • "C:\Programme\AviSynth 2.5\Docs\english\corefilters\pulldown.htm"

    Beispiele für "Inverse Telecine" (IVTC) findet man reichlich, Beispiele für "Forward Telecine" dagegen kaum. Aber vielleicht hilft dieses Thema im englischen doom9-Board ein wenig:

    http://forum.doom9.org/showthread.php?t=119185

    So wie ich das verstanden habe, erzeugt man Telecine (24000/2001 fps => 30000/1001 fps) mit:

    DoubleWeave()
    Pulldown(3, 2)

    Oder liege ich da ganz falsch?
    __

    Und (forward/inverse) Telecine gibt es überhaupt nur für NTSC! Denn nur 24:30 läßt sich zu 4:5 kürzen. Bei 24:25 gibt es zwar auch eine entsprechende "Normwandlung", aber die ruckelt sichtbar aller halbe Sekunde.
    __

    Hah! Hier ist doch noch was zu finden:

    http://home.arcor.de/scharfis_brain/ExotischesInterlacing/

    2.3 Normgewandeltes Filmmaterial
    2.3.1 Erklärung der NTSC-Telecine per 3:2 Pulldown

    AVISource("24fpsFilm.avi")
    SelectEvery(2,0,0,0,1,1).SeparateFields().SelectEvery(4,1,2).Weave()

  • Also mit DoubleWeave() und Pulldown(3, 2) klappt es nicht, das ergibt 19.181fps.

    Nun, wenn es das nur für NTSC gibt, wundert es mich warum bei dem Thread am Ende steht
    Improvements I can think of:
    - Support for PAL anime
    Muss ja dann einen Unterschied machen. Bei Gelegenheit werde ich das Script aber trotzdem mal probieren, nachdem ich meine PAL Aufnahme zu NTSC gewandelt hab. Aber wahrscheinlich wird das dann nicht richtig klappen, wenn das schon so dabei steht.

    Mit der Möglichkeit scheint es zu klappen:
    mrestore()
    SelectEvery(2,0,0,0,1,1).SeparateFields().SelectEvery(4,1,2).Weave()
    Video hat dann 29,97fps, nur ist das Video dann wieder interlaced und hat Blends. Wie bekomm ich das dann wieder progressiv? Die Möglichkeit von der Seite funktioniert nicht. Bekomme nur eine Fehlermeldung, wenn ich das verwende:
    Telecide(order=1,post=0)
    Decimate(5)

  • Den 3:2-Pulldown gibt es so nur zwischen Film und NTSC. Wenn es bei Anime (oder allgemein "echtem Zeichentrick") auch so etwas wie Telecine gibt, also beim Hochrechnen der maximal 8 fps auch halbbildweise gearbeitet wird, dann aber wohl kaum im 3:2-Muster.

    Und Telecine erzeugt selbstverständlich Interlacing. Darum geht es ja gerade: Auf einem Röhrenfernseher die Bewegungen nicht allzu ruckelig erscheinen lassen, indem die Konvertierung Film zu NTSC durch Verdopplung von Halbbildern statt Vollbildern durchgeführt wird.

  • Ja Telecine erzeugt wieder Interlacing bzw. Fieldshifting. Genau genommen werden zwei von fünf Frames fieldshifted. Das Script soll nur auf den kleinen Teil der Quelle angewendet werden, der mit mrestore(nurm=600,denm=1001) nicht fluessig wird und ist eigentlich auch blendfrei.

    Ich kenne nur zwei Möglichkeiten diese Quelle progressiv, ohne Blending und Interlacing auszugeben:
    1. Hybride Framerate im mkv-Container (kenne Methode nicht).
    2. Raufrechnen auf höhere Framerate.

    Also zum Beispiel beide Teile der Quelle (29.97fps und 23.976fps) auf 60000/1001fps oder noch besser auf 120000/1001fps hochrechnen und wieder zusammen fuegen. Rund 60 bzw. sogar 120fps klingt zwar sehr viel. Da der mpeg4 Codec allerdings identische Frames auch nur als Duplikate erkennt und abspeichert sollte sich das in der Größe der Datei nur sehr gering niederschlagen. Bei Mpeg2 bin ich mir da allerdings nicht so sicher.

  • Da der mpeg4 Codec allerdings identische Frames auch nur als Duplikate erkennt und abspeichert...

    XviD sollte das zumindest schaffen, geeignet eingestellt (die "Frame drop ratio" in den erweiterten Einstellungen hängt damit zusammen). Aussagen der Art "jeder MPEG4-Codec" würde ich aber nicht treffen wollen.

Jetzt mitmachen!

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