Zwischenbildberechnung mit KI - Hat jemand CUDA5?

  • Als 'Interpolation Algorithm' gibt es "Default: 2X/4X/8X; Less Memory; Slower; Cleaner Results" und "Experimental: 2x/3X/4X/5X/6X/7X/8X/; Mode Memory; Faster; May generate more artifacts", bei letzterem wird 3,5-5GB Speicher verbraucht und aber sonst scheint sich da nichts zu ändern.

    Die Temperatur der GPU ist ein paar Grad wärmer und die Interpolation ist ca. 30 Sekunden schneller, CPU Auslastung ist jetzt so 20-50% (stark schwankend).

    -> Hmm,.. liegt vielleicht an der niedrigen Auflösung.

    Was mir nicht gefällt, ist das die 'Final FPS' jetzt noch weiter von den angestrebten 50fps abweicht und entsprechend mehr frame existieren.

    -> für mehr als wirklich zum Experimentieren würde ich das aktuell nicht einsetzen.


    Cu Selur

  • Die Frames im temporären 'original_frames'-Ordner sind korrekt 319.

    Nur im 'interpolated_frames'-Ordner enden zu viele Frames.

    -> das Problem ist bei der ihrer interpolation, die interpolieren zu viele Frames und ohne das man auf vfr zurückgreift oder den Ton anpasst muss das zu asynchronem Output führen wenn man einfach die Framerate auf 50fps umändert. ;)


    Unter 'Misc Options' hab ich noch was gefunden da gibt es Optionen was er machen soll wenn er über der Framerate ist, aber keine Einstellung was er machen soll wenn er drunter ist.

    Hab also nochmal 'Experimental' + 'Don't interpolate scenes changes'+ 'IF FPS exceeds [FPS] Interpolate down to [FPS [Conf 1: Smooth]' ausgewählt und [FPS] auf 50 gesetzt, mit dem Effekt:

    das DAIN da jetzt auch zu wenige Frames erzeugt,


    -> Naja, ist halt noch bei 0.4 denke da sollte man noch etwas warten. ;)


    Cu Selur

  • Habe nochmal mit den ersten beiden Videos, die du gestern unter "Default-Algo" erstellt hast, rumgespielt.

    Er arbeitet fast schon korrekt mit Eigenheiten:


    Das erste KI-Video: hat 637 frames was quasi 319 +318 Zwischenbilder entspricht.

    Das passt auch, habe das Bild für Bild verglichen. Weil das letzte Bild keinen Nachfolger hat, kann er auch kein 638. erstellen.

    Darum hat er bei der selben Zeitlänge (12,76 sek) ein Frame weniger und darum kommt er auf 49.92 fps. Wenn man die Frames einfach mit 50 fps codiert fehlt ein Zwischenbild (nämlich das was nach dem letzten käme) aber darauf kann man verzichten.


    Das zweite Video hat den Szenenübergang-erkenner drinnen. Das Dain berechnet deswegen zwischen den beiden Szenen auch kein Zwischenbild.

    Das Video hat also noch ein Frame weniger als das erste Video. 636 Bilder.

    Und bei gleicher Zeitlänge (12,76 sek) und 636 Bildern kommt man auf 49,84 fps. Auch diese Bilder könnte man einfach auf 50 fps patchen und es gibt auch keine Ruckler oder sowas.

    Nun bleibt nur das Problem, dass er bei jedem Szenenübergang ein Zwischenbild weglässt, was Synchroprobleme mit dem Ton nach sich zieht, wenn man auf 50 fps besteht.

  • Jetzt wäre ich noch neugierig auf den Vergleich mit MFlowFps / MBlockFps ... die vermisse ich in Diskussionen rund um Frame Interpolation merkwürdigerweise regelmäßig. Vielleicht weiß ich nur noch nicht, dass die technisch längst überholt sind? :/

  • Ich habe mir mal angeschaut wie FrameRateconverter und SVP das Problem bei Szenenübergängen lösen.

    SVP verdoppelt einfach das erste Bild der folgenden Szene. So dass kein Bild fehlt aber schön ist das nicht so sehr. Notlösung

    FrameRateconverter verdoppelt auch das Bild entweder am Ende der ersten Szene oder am Anfang der zweiten Szene. Oder er macht einfach ein Blendframe rein.

    Ich finde ein Blendframe (aus letztem und ersten Bild) ist der beste Kompromiss. Das stört überhaupt nicht beim gucken (im Gegensatz zu einem interpolierten Mischbild). Damit wären dann auch alle Tonsynchro-Probleme gelöst, wenn sie das einbauen würden.

  • LigH: Zumindest:

    sieht nicht gut aus. Hier. Da wackelt die Krone schon arg.


    Problem ist halt, dass:

    a. MVTools leider nur CPU basiert existiert, sprich einiges langsamer als SVP ist. (wie FrameRateConverter auch)

    b. man oft viel basteln muss um mit mvtools Ergebnisse zu bekommen die mit FramerateConverter und SVP mithalten können.


    DAIN sieht sehr vielversprechend aus, aber da wird es wohl noch ne Weile dauern bis man das wirklich nutzen mag.


    Cu Selur


    Ps.: Hoffe ja immer noch, dass sich jemand findet, der ne opencl oder cuda gestützte Variante von mvtools schreibt, das würde bei so einigen Skripten wirklich helfen. :)

  • Vermute 2 Bilder ist einfach zu wenig. Dain crashed:


    Okay war ein Bug, habe die Dateien nochmal nach 'E:/Output/Zwei_Bilder/original_frames/' kopiert, dann geht es.

    Wie zu erwarten wird interpoliert, wobei der Algorithmus bei 2 Frames auch keine Chance, hat. ;)

    (Darum wird in Hybrid auch Input der <= eine Sekunde ist auch verworfen. ;))


    Cu Selur

  • Ja, das mag schon sein. Hierbei kann er aber auch nix sinnvolles interpolieren, weil es ein Szenenübergang ist. Und er eigentlich nur Quatsch dazwischen erzeugen kann.

    Bei jedem Szenenübergang macht er so ein (verständlicherweise) "Matschbild". Das fällt beim Gucken mehr oder weniger auf und ist schon störend.

    Darum hat das Tool ja eine zuschaltbare Szenenerkennung drin. Aber die ist Müll! Mal erkennt sie gar keinen Szenenübergang mal erkennt sie jedes Bild als neue Szene.

    Darum habe ich beschlossen, wenn ich das Tool nutze. Erstmal Alle Bilder zu interpolieren. Dann habe ich einen eigenen Szenenerkennungsalgo. der sagt mir wo die Szenenübergänge sind. Dann weiß ich wo die Matschbilder liegen und werde sie ersetzen mit einem Blendframe (erzeugt aus letztem und erstem Bild). Dann bin ich zufrieden.