Butterweich von 50p nach 25p?

  • Nicht dass ich überhaupt solches Material hätte - mich interessiert einfach mal nur theoretisch:

    Wenn ich Lust auf Seifenoper hätte, und mir aus einem 50p-Film einen 25p-Film filtern wollte, was könnte ich da verwenden, um möglichst Einblendungen der beiden umliegenden Frames zur Hälfte mit drin zu haben - sozusagen "temporaler (1,2,1)-Kernel"?

    ConvertFPS geht ja nun leider nicht. Wäre schön, wenn ich ihn auch für größere fps-Abweichungen in den Blend-Modus zwingen könnte, is aber nich... warum eigentlich nicht, wieso soll der Switch-Modus so viel besser sein, obwohl er doch Tearing verwendet (wenn auch weich)?

  • Ich weis nicht ob es das ist was du meinst aber mit MFlowFps aus den MVTools kannst du die FPS ändern.

    Will change the framerate (fps) of the clip (and number of frames). The function can be use for framerate conversion, slow-motion effect, etc. It uses backward "mvbw" and forward "mvfw" motion vectors to create interpolated pictures at some intermediate time moments between frames. The function uses pixel-based motion compensation (as MFlow, MFlowInter). Internal forward and backward occlusion masks (MMask kind=2 method) and time weighted factors are used to produce the output image with minimal artefactes. True motion estimation is strongly recommended for this function.

  • Code
    mt_lutxy(last, last.deleteframe(0), yexpr="y 2.2 ^ x 2.2 ^ + .5 * 1 2.2 / ^", uexpr="y x + .5 *", vexpr="y x + .5 *", U=3, v=3)
    selecteven()


    damit mittelst Du zwei benachbarte Frames in eins.
    man könnte auch einfach mit merge() zwei frames mischen,
    das sieht aber nicht gut aus, weil es nicht gamma-korrigiert arbeitet.
    Mit dem oben genannten Code kann man Frames mit vollem Shutter (also 1/50 sec bei 50fps)
    so zusammenmixen, dass es hinterher nach echtem 1/25 sec Shutter bei 25 fps aussieht.

    In diesem Falle mit Kanonen wie z.B. den MvTools zu feuern ist unnütz, es sei denn,
    man hat es mit kürzeren Verschlusszeiten als 1/50 sec zu tun.
    Dann muss man vorher die Framerate soweit hochkonvertieren, dass man wieder
    einen vollen Shutter pro Frame erreicht, also bei 1/200 sec Belichtungszeit auf 200 fps,
    dann jeweils acht Frames mit dem oben gezeigten Code vermischen.

    Einen temporalen 1,2,1 Kernel würde ich tunlichst vermeiden.
    Da kommt nur Blur-Matsch raus. Außerdem ist der auch mit Sicherheit nicht Gamma korrigiert,
    wenn man nicht aufpasst.

    [Blockierte Grafik: http://home.arcor.de/scharfis_brain/gamma.jpg]

  • Leck mich am Ärmel, was für ein Unterschied! Endlich mal ein gutes Beispiel, warum man eigentlich immer Gamma-korrigiert arbeiten sollte.

    Danke für die Demonstration, Scharfi!

  • Eigentlich müssten ALLE pixelwertmamipulierenden Filter Gamma-Korrigiert arbeiten,
    Denn selbst die schnöden blur und sharpen filter ändern die durchschnittliche Bildhelligkeit. Von den Resizern mal ganz zu Schweigen.
    Auch temporale Rauschfilter müssten auch Gamma-korrigiert arbeiten.
    Wenn sie das täten, wäre die ganze Problematik mit dem vermeintlich unterschiedlich starken Rauschen in dunklen und hellen Bereichen automatisch behoben.

    (oder eben ein 16bit linearer YUV Farbraum für AVS)

  • Eben, und genau diesen Blur-Matsch will ich haben für meine spezielle Idee. Na gut... jetzt hab ich nur noch ein Detail verpasst: Wie funktioniert diese Gammakorrektur? Das heißt - die Variante oben rechts würde mich interessieren als "bestmögliches schlechtes Beispiel".

  • Zitat

    die Variante oben rechts würde mich interessieren


    Biddeschööön ...

    Code
    mt_lutxyz(last.selectevery(1,-1),last, last.selectevery(1,1), yexpr="x 2.2 ^ y 2.2 ^ 2 * z 2.2 ^ + + 4 / 1 2.2 / ^", uexpr="x y 2 * z + + 4 /", vexpr="x y 2 * z + + 4 /", U=3, v=3)
    selecteven()


    Achtung - das Script könnte etwas verzögert laden: lutxyz muss erst mal ein 16M Lookup Table generieren...

  • Vor dem Edit, ja. Nach dem Edit, nein.

    Mit dem rechten Auge/Ohr Script schreiben, mit dem linken Auge/Ohr Lena in Oslo hören, das kann ja nicht gut gehen ...


    Außerdem, seh' ich das richtig? Genau genommen ist das alles immer noch nicht ganz korrekt. Völlig richtig wär's nur in RGB. Gamma im YUV-Farbraum ist doch so 'ne halbseidene Geschichte ...

    Einmal editiert, zuletzt von Didée (29. Mai 2010 um 23:17) aus folgendem Grund: Mensch, Diideeeee ..... nach Doppelvokal bleibt doch 'ß', da kommt kein 'ss' ... :ohrfeige:

  • hi! habe schon überall nach ner methode gesucht um meine ard & zdf hd aufnahmen von 720p50 auf 720p25 umzuwandeln. habe bisher immer den einfachen avisynth befehl changefps(25) genommen. hat soweit auch ganz gut funktioniert habe aber seit kurzem das problem, das (hauptsächlich bei sportsendungen zu beginn der zeitlupe) das bild für 1-2 sekunden extrem zappelt, als würde er 5 frames vor und dann wieder zurück springen. habe hier in diesem thread scheinbar einen lösungsansatz gefunden, aber bei mir wird das nicht butterweich, sondern bei schnellen bewegungen habe ich einen schatten. was kann ich tun, damit dieser schatten verschwindet?

    edit: war glaube ich mein fehler! habe das 2. script genommen. mit dem ersten siehts doch etwas besser aus!

    nochmal edit: sieht nur bedingt besser aus! habe mal screen1 und screen2 drangefügt. der eine ist mit changefps (selecteven sieht genauso aus) und der andere mit mt_lutxyz

    3 Mal editiert, zuletzt von matmiller (6. Oktober 2010 um 15:14)

Jetzt mitmachen!

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