Video nach deinterlacing nicht mehr flüssig/subjektives Ruckeln! Warum? Please Help!

  • Ich stell euch erstmal mein Script vor, welches ich mit Hilfe von Gknot 0.32beta erstellt habe:

    # PLUGINS
    LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\dgdecode.dll")
    LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\TomsMoComp.dll")

    # SOURCE
    mpeg2source("M:\aufnahmen\Pimp My Ride\S01E01.d2v", idct=0)

    # CROPPING
    crop(26,16,668,548)

    # DENOISING: choose one combination (or none)
    DoubleWeave()
    SelectOdd()
    TomsMoComp(1,5,1)

    # RESIZING
    BicubicResize(512,384,0,0.75)


    Nun habe ich aber ein paar Fragen, da die fertigen Videos meiner Meinung nach nicht wirklich flüssig laufen. Ich vermute das liegt an "DoubleWeave()" und besonders an "SelectOdd()", da irgendwie ungerade frames genommen werden. Jedoch verstehe ich das nicht richtig, da es ja auch noch "selecteven" und "selectevery" (oder so ähnlich) gibt. Bringen die mehr als "selectodd"? Welches sollte ich nehmen?

    Als DeInterlacer nehme ich immer "TomsMoComp", weil er am saubersten arbeitet und kein Ghosting oder Schlieren erzeugt, jedoch sind die Bilder nicht mehr so schön flüssig wie in der Original-File.

    Wenn ich jetzt statt "TomsMoComp" den "Fielddeinterlace"-Filter einschalte (blend=true), dann ist die Xvid-Avi wieder schön flüssig, jedoch gibt es Schlieren und Ghosting-Effekte.
    Wenn ich "fielddeinterlace" (blend=false) einstelle, dann sind die Schlieren weg, aber das Video ist wieder unnatürlich unflüssig.

    Natürlich hab ich schon versucht die Framerate der Videos zu ändern. Mit "assumeFPS" auf 30 gestellt und umgewandelt. Das ergebnis war eine um 3 Minuten kürzere Videodatei und asynchroner SOund. Jedoch war das Video dann zu flüssig. Also ist das ändern der Framerate nichts für mich, obwohl die US-Folgen von Pimp-My-Ride 30fps haben. Aber dann müsste man das anders umwandeln und wahrscheinlich Frames duplizieren, was mir aber ehrlich gesagt zu kompliziert ist. Aber ich wandle nicht nur diese Serie um. Ich archiviere auch Simple Life, Simpsons und Futurama (in letzter Zeit wird diese Serie progressive gesendet :)).

    Nun ein paar Infos zu den Progs und Einstellungen die ich benutze:
    GordianKnot 0.32 beta
    Xvid 1.0.1 (als Encoder und Decoder)
    Avisynth 2.5.4

    Meine Frage ist also folgende: Ist es möglich vollständig zu deinterlacen und dabei das Video nicht zu verkrüppeln? Denn ich glaub das beim vollständigen deinterlacen (also blend=false) immmer ein frame oder so gelöscht werden.
    Ich bitte euch: klärt mich auf!

    BTW restore24 hab ich schon probiert...

  • .
    .
    DoubleWeave()
    SelectOdd()

    .
    .
    DoubleWeave().SelectOdd() würde man verwenden, wenn man die Fieldorder wechseln will - Du willst aber deinterlacen, weshalb das unnütz ist.

    1. Finde heraus, welche Fieldorder dein Video hat
    2. Pass die Parameter von TomsMoComb entsprechend an
    3. mpeg2source("M:\aufnahmen\Pimp My Ride\S01E01.d2v", iPP=true)

    Das Ruckeln könnte daher kommen, das Dein Video TFF hat, Du die Fieldorder auf BFF wechselst [DoubleWeave().SelectOdd()] und dannach TomsMoComp() für einen TFF Clip anwendest [TomsMoComp(1,5,1)].

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • iruds

    Was ist das denn nun für eine "Aufnahme" ??
    Eine US Serie (so wie sich das rausliest)?
    Wenn ja, dann kann ebenso bei einem blend=false deinterlacing solcher Normwandlungen ein ruckeln im z.B. 10fps intervall bei rauskommen, daher ist bei einer solchen Normwandlung Restore24() angesagt. Ansonsten lieber interlaced lassen, denn ein deinterlacing mit blend=true ergibt eben jene blendings.

    Manuell auf eine andere fps zu pitchen bringt dir gar nix, da eben eine PAL Aufnahme als 25fps bei dir ankommt.

    Wie deine Fieldorder ist, kannst du leicht herausbekommen. Es gibt scripte mit tollem textoutput, aber es geht auch leicht mit 3 Zeilen:

    mpeg2source("M:\aufnahmen\Pimp My Ride\S01E01.d2v")
    AssumeTFF()
    bob()

    Wenn nun dein Preview ein zurück-und-vor effekt aufweist (ich meine nicht das Zittern), dann hast du einen BFF Bottomfield first stream. Zur absicherung lässt du sodann die 3 Zeilen nochmals durchlaufen, aber mit AssumeBFF() anstatt AssumeTFF().

    IDCT=0 in deinen mpeg2source parmetern ist eh default und daher nicht nützlich.

    Mpeg2dec readme:

    ipp=true bedeutet ein Postprocessing, also de-blocking und dies sodann fieldbased (framebased wäre "false" und ist als default gesetzt).
    Wenn deine Source nun keine Blöcke aufweist, so ist dies nicht unbedingt nötig, da ich mal davon ausgehe, dass die "Aufnahme" von dir stammt und du beim aufnehmen genügend Bitrate zugeordnet hast.

    Infos gibts hier:
    http://mf.creations.nl/avs/filters/MPEG2Dec3.html

  • Zitat

    ipp=true bedeutet ein Postprocessing, also de-blocking und dies sodann fieldbased (framebased wäre "false" und ist als default gesetzt).
    Wenn deine Source nun keine Blöcke aufweist, so ist dies nicht unbedingt nötig, da ich mal davon ausgehe, dass die "Aufnahme" von dir stammt und du beim aufnehmen genügend Bitrate zugeordnet hast.


    Jo, danke - ich hab das cpu=4 vergessen, was bei restore24 empfohlen wird. Alleinstehend ist der Parameter nutzlos.

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • also urspruenglich NTSC.

    wenns vorher 60i war, wuerde ich es interlaced lassen, denn deinterlacing bringt hierbei nur nachteile.

    wenns vorher 24p (3:2 Pulldown) war, dann
    1) die einfache methode: interlaced lassen
    2) restore24 anwenden

    (wie incredible schon sagte)

  • schon ma danke für die antworten,
    jedoch:

    1. kann ich mir interlaced-filme nich angucken, denn das nervt (nervt wirklich)
    2. möchte ich die bestmögliche Quali fürs Archivieren haben (also deinterlaced, weil ich ja alles ins Xvid-Format umwandle und nich als interlaced-DVD brenne)

    nun habe ich so encoded:

    # PLUGINS
    LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\dgdecode.dll")
    LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\TomsMoComp.dll")

    # SOURCE
    mpeg2source("M:\1.d2v", idct=5)
    AssumeTFF()
    bob()


    # CROPPING
    crop(8,8,512,560)

    # DEINTERLACING (1)
    TomsMoComp(1,5,1)

    # RESIZING
    BicubicResize(512,384,0,0.75)

    Das Bild ist superflüssig, läuft aber mit 50fps. Das würd mich ja nich weiter stören, aber GordianKnot meckert rum und halbiert die bitrate zum encoden von ehemals 1100kbps auf 550kbps. Ändert das nich die Qualität? Oder gleicht sich das wieder durch die 50fps aus?
    Also deinterlacing muss leider sein...

  • aehm, was Du da machst, ist unfug.

    bob()
    und dann noch tomsmocomp hinterher ist sinnbefreit.

    bob() ist bereits ein deinterlacer (aber ein fuerchterlich dummer welcher)

    nimm lieber die AVISynth-Funktion kernelbob zum 50fps deinterlacen.
    (anstelle von bob() und tomsmocomp() )

  • Zitat von Viperzahn

    Jo, danke - ich hab das cpu=4 vergessen, was bei restore24 empfohlen wird. Alleinstehend ist der Parameter nutzlos.

    Echt? Wusste gar nicht, dass dies empfohlen wird, denn jene BlindPP/ipp funktionen erfordern ja YV12 und meist wird ja beim capturen in YUY2 aufgenommen.

    Wenn die Source eh als mpeg2 YV12 vorliegt, macht dies bestimmt Sinn, aber bei YUY2 captures müsste ich ja sodann am original Size MOD16 die BlindPP ausführen, also sodann erst von YUY2 in YV12 gehen und für Restore24 wiederum zu YUY2 zurück *schüttel* ;)
    Des Restorrrring Dingsche is ja eh scho so langsam .... und ein späteres Postprocessing ist ja eh nicht der Renner, da die original Pixel Informationen sodann eh nicht mehr im gleichen 16x16 Raster vorliegen wie im Original.

    Oder irre ich mich da?

  • um endlich zum Schluss zu kommen....
    Was soll ich tun? durch das 50fps-dingen verliere ich an Qualität und Schärfe
    und bei 25fps ruckelt es subjektiv. :(
    Wieso senden die eigentlich nicht einfach alles progressive? Bei vielen Filmen und Futurama gehts doch!
    Ich krieg echt zuviel mit dem ganzen deinterlace-sch*** :mad:

  • Zitat von incredible

    Echt? Wusste gar nicht, dass dies empfohlen wird, denn jene BlindPP/ipp funktionen erfordern ja YV12 und meist wird ja beim capturen in YUY2 aufgenommen.

    Wenn die Source eh als mpeg2 YV12 vorliegt, macht dies bestimmt Sinn,...


    Was seine Ausgangsdatei auch sein mag, hier läd er eine DVD2AVI oder DGIndex *.d2v Datei via MPEG2Source. Sowohl das eine, als auch das andere, können nur MPEG-2 Streams verarbeiten. Jeder existierende, an einem SA Player funktionierende Standard mit MPEG-2 Video verlangt Main Profile @ Main Level und dort ist als Farbraum nur YV12 erlaubt/möglich - Ich wette, er hat hier nichts höheres als MP@ML verwendet ;)


    Zitat

    ...aber bei YUY2 captures müsste ich ja sodann am original Size MOD16 die BlindPP ausführen, also sodann erst von YUY2 in YV12 gehen...


    Wie oben beschrieben, bin ich in diesem Fall nicht davon ausgegangen, das eine YUY2 Quelle vorliegt. In der example.avs von restore24 steht:

    Code
    # load the Video, use postprocessing for better blend-recognition on MPEG Video
    #mpeg2source("video.d2v",cpu=4,iPP=true)
    Zitat

    ...und für Restore24 wiederum zu YUY2 zurück *schüttel* ;)


    Restore24 funktioniert auch mit YV12


    Zitat

    Des Restorrrring Dingsche is ja eh scho so langsam .... und ein späteres Postprocessing ist ja eh nicht der Renner, da die original Pixel Informationen sodann eh nicht mehr im gleichen 16x16 Raster vorliegen wie im Original.


    Postprocessing ist garantiert weniger zerstörerisch, als das Video zuerst zu zerlegen, danach Denoiser und Deblocker anzuwenden, und das ganze zum Schluß wieder zusammenzuflicken. Wenn ich von TV Caputres eines weiß, dann das man die so gut wie immer irgendwie entrauschen muß ;)

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • @ Viperzahn

    Yep mpeg2 ist generell YV12 MainProfile@MainLevel, meine Frage bezog sich aber "generell" auf Restore24() und hat etwas die UrsprungsDatei dieses Threads verlassen.
    Ich habe mir nochmal die letzte Version (welche von Scharfis_Brain hier "Revisited" worden ist) angesehen und dort ist eben YUY2 (noch) von Nöten. Zumindest im "Example.avs" .... aber da meine Aufnahmen immer AVIs in YUY2 (HuffYUV/mjpegQ19), sind, habe ich das mit YV12 und R24() noch nicht ausprobiert.

    Dass ein späteres "PP" Postprocessing nach erfolgtem croppen/resizen nicht der Renner ist, bezog sich darauf, das eben jener Postprocessing Filter die original enkodierte Blockmatrix MOD16 braucht um eben jene original DCT Blöcke "packen" zu können.
    Deshalb meinte ich, muss eh solch ein postprocessing eh direkt nach dem Import erfolgen (was bei mpeg2 input YV12 ja nicht das Problem ist).

    Es gab so einige Threads bei z.B. KVCD wo DialHot ein recht gutes mpeg4 source Script veröffentlicht hat.

    z.B. fings so an:

    Avisource("YourMpeg4.avi")
    BlindPP(CPU=4)
    ....
    ...
    ..

    Über manche mpeg4 Sources bzgl. Auflösung kann man ja lächeln (z.B. 510x380), aber es gab dort Antworten, dass bei einem nicht MOD16 Import (siehe Beispiel) eben der Filter Meckert. Ok, klatschen wir im Beispiel oben eben manuell Borders dran um auf MOD16 zu kommen (croppen wäre im Vergleich weniger Sinnvoll). Und da haben viele fälschlicherweise die Borders oben und links drangesetzt, was den Bildinhalt von oben links gesehen in der 16x16 BlockMatrix "verschiebt", somit arbeitet der PP Filter nicht mehr im original enkodierten 16x16 Raster auf dem das beste PP herauskommen würde. Demnach war es eben besser, wenn dann unten oder rechts im Bild auf MOD16 zu croppen oder Borders anzufügen.

    Das war es, was ich mit "...und ein späteres Postprocessing ist ja eh nicht der Renner.." meinte ;)

    BTW: Schon mal das Postprocessing via FFdshow decoding ausprobiert? Nimmt zwar mehr CPU in Anspruch, aber ist der Hit.

    @ All, .... sorry for OT

  • Jeses, denn war dein letztes Posting aber "etwas" kurz gefasst ;)


    Zitat

    Ich habe mir nochmal die letzte Version (welche von Scharfis_Brain hier "Revisited" worden ist) angesehen und dort ist eben YUY2 (noch) von Nöten. Zumindest im "Example.avs" ....


    Habs getestet mit MPEG2Source() als Inputclip, funktioniert ohne ConvertToYUY2() astrein und bleibt auch YV12.


    Zitat

    Schon mal das Postprocessing via FFdshow decoding ausprobiert? Nimmt zwar mehr CPU in Anspruch, aber ist der Hit.


    Nein, aber danke für den Tipp, teste ich bei Gelegenheit mal an.

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • noe, das neue restore24 (auch schon nen paar wochen alt) kann auch YV12
    das ist auch in der Update.txt vermerkt.

    (ich bin faul, deswegen keine groszartige aenderung an der example.avs)

    ich rate jedoch fast ausnahmslos zu YUY2 processing, auch bei YV12 source, denn YV12 und interlacing ist immer sehr heikel, zumal in AVISynth & Smartdecimate auch noch Bugs bei YV12 auftreten...

  • Jo, und dann konvertiert xivid am Ende wieder zu YV12 ... denn kann man sich AviSynth 2.5x auch gleich komplett hacken und bei der 2.08er bleiben. Da hab ich dann auch meine YV12 -> YUY2 -> YV12 Farbraumkonvertierung - im ganzen Leben ist das nicht verlustfrei.

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

  • Kein Problem, solange ich die aktuellen Skripts schreibe und die aktuellen Plugins dazu aussuche ;)

    Gruss,
    Viperzahn

    Es ist zu einer gesellschaftsfaehigen Unsitte geworden, dass jeder etwas von sich geben muss, auch wenn er keinerlei Ahnung hat. Und wer vielleicht mal 30 Sekunden nachdenkt, bevor er etwas sagt, dem wird weniger geglaubt als jemanden, der sofort gutklingenden Muell von sich gibt.
    -> http://people.freenet.de/dynamischerpha…esse_halten.mp3

Jetzt mitmachen!

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