High Quality - Deinterlacing mit AVISynth

  • @ schafis brain, ich würd aber AUCH SEHR GERN das ganze testen, nur, bin ich jetzt zu blöd? weiss nicht woher ich diese dlls bekomme

  • LigH:

    Zitat

    TMCBob jedoch ist bisher nicht erheblich besser als die anderen Deinterlacer,

    aechemmm raeusper :)
    ich klaue mir bemi TMCbob die interlace-maske blosz vom dgbob, indem ich vorhergehendes und aktuelles bild voneinander abziehe und dann die kontrast extrem ueberhoehe. Dh. es wird fast die gleichen verbleibenden Kaemme geben wie bei dgbob. Nur die interpolation (geklaut von TMC(0,-1,0) )ist um laengen besser, als die der anderen deinterlacer)
    alternativ kannst Du Dir aus tmc(-1,15,0) einen bobber zusammenbasteln (wie kernelbob) und den an die stelle von dgbob setzen, wenn tmc(-1,15,0) bei Dir am wenigsten kaemme ueberlaesst. Oder ich Tu das mal gleich...

    Was passiert denn, wenn Du den Threshold gegen Null laufen laesst? (also immer kleienr machst) wie siehts dann mit dem verbleibenden Kaemmen aus?

    mein K6-2 ist gerade nur mein low-noise-rechner, da mich mein Athon XP doch arg nervt (hoert sich an, wie ne kreissaege) und z.Zt. das Windoze spinnt, und ich zu faul bin, das zu reparieren.

    @Xell:die DLLs gibts bei http://avisynth.org/warpenterprises und neuron2.net

  • > Gunnar: wie gefaellt Dir das deinterlacing?

    Es funktioniert ;)

    Aber der Schärfeverlust ist doch sehr deutlich bei meinen TV-Captures auf dem TV zu sehen. Das 2te Script werde ich bei Gelegenheit auch mal testen. Werde aber grundsätzlich dabei bleiben mein "Interlace-Kram" nicht zu deinterlacen um die Schärfe zu behalten. Aber wer weiß was dir noch Geniales einfällt ;)

    Gruß Gunnar

  • Hallo,

    würde auch gerne High Quality haben. Wo finde ich den TMCKernelBob ???
    Bei AviSynth gibts denn net, Google findet auch nix und die Boardsuche verweist auf diesen Thread. Hey kommt schon rückt den TMCKernelBob raus ;)

    cya

  • electrical_banana

    ich fasse mal kurz zusammen, wie das mit dem HQ Deinterlacer läuft:
    vorweg: das ist ein script-deeinterlacer der auf andere AVIsynth DLLs aufbaut und der wird hier und in forum.doom9.org quasi erfunden :D

    Du brauchst:
    AVIsynth2.54 <-- wo es das gibt, findest du auf der 2. Seite ganz in diesem Thread
    tmc_avsi.zip <-- findest du auch auf der 2. Seite in diesem Thread, such da mal nach mit STRG+F

    in den beiden AVSI Dateien musst du noch die Pfade ganz oben deinem System entsprechend anpassen und natürlich musst du die benötigten DLLs haben --> http://www.avisynth.org/warpenterprises/

    in dein normals script baust du nun oben ein:
    import("TMCKernelBob.avsi")
    ....
    und da wo sonst der deinnterlacer dann den Aufruf samt parameter:
    tmcbob(true)

    es gibt noch mehr Parameter, dazu zietier ich mal aus dem AVSI script

    Code
    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\KernelDeInt.dll")
    LoadPlugin("D:\Programme\AviSynth 2.5\plugins\TomsMoComp.dll")
    
    
    function TMCKernelBob(clip input, bool TFF, int "th", int "select")
    ....

    wenn man sich den ganz anguckt, dann kriegt man auch raus was die anderen Parameter zu sagen haben.

    Probier es am besten erstmal soweit aus.


    ...cu

  • Noch einer, den ihr "vergessen" habt (ist aber auch etwas schwer zu finden, mit Google geht's wohl): "aDeInt" von 'Marc FD'. Ebenfalls recht artefaktfrei wie TomsMoComp, zumindest nach bisherigen Tests, und *sauschnell*! Benötigt allerdings ISSE. Etwas streifig allerdings bei Ganzbild-Überblendungen.

  • Hallo ashyak,
    zunächst mal vielen Dank für Deine Einführung.
    Die Datei von Seite 2, tmc_avsi.zip bringt beim entpacken einen Fehler, ich schätze an meinem entpacker Win Ace 2,5 kanns nicht liegen. Gibts sonst noch Quellen wo man sich diese Datei besorgen kann ?

    AviSynth 2.54 hab ich besorgt und installiert.
    Zwischenzeitlich habe ich mal den tomsmocomp deinterlacer angetestet, was mir die Vorschau unter VDMod da zeigt lässt mich nicht gerade vor Freude strahlen, der macht ja übelste Klötzchen ! Ich weiß ja net ob das nach dem encoden über den CCE dann wieder anders ausschaut. So gewinnt der keinen Blumentopf.

    Pfiati

  • Habe ich das so richtig verstanden

    loadplugin("mein Pfad\kerneldeint140.dll") ---> die DLL
    loadplugin("mein Pfad\tomsmocomp.dll") ----> die andere DLL
    import("mein Pfad\tmc_avsi") --------------> die avsi von seite 2 hier
    avisource("interlacedvideo.avi") ------------> mein Video
    tmckernelbob(TFF=true) -------------------> die Fieldorder meines Videos

    Stimmt das so oder fehlen da noch Parameter um HQ zu deinterlacen?

    Vielen Dank

  • Im Grunde müssen die Plugins (die ersten beiden Zeilen) nicht mal geladen werden, weil die schon in den *.avsi geladen werden. Ich zeig euch mal ein paar Beispiele zum Vergleich:

    TMCKernelBob

    Code
    LoadPlugin("mpeg2dec3dg.dll")LoadPlugin("undot.dll")Import("TMCKernelBob.avsi")mpeg2source("movie.d2v",iPP=true,CPU2="xxxxoo",iDCT=6)TMCKernelBob(true)Crop(10,20,700,536)BicubicResize(448,320,0,0.5)Undot()Levels(0,1.4,255,4,248)Tweak(sat=1.2,cont=1.1)TemporalSoften(4,4,8,15,2)

    TMCBob

    Ich muss dazu sagen, dass ich den Code noch mal ein wenig umgearbeitet hatte: Der Parameter "TFF" ist notwendig, deshalb darf sein Name nicht angegeben werden (entweder notwendiger Parameter, dann ohne Name - oder freiwilliger Parameter, dann mit Name).

  • Hallo,

    ich habe mal versucht, mit Hilfe der normalen AVISynth-Befehle einen Bobber nachzubilden. Das Prinzip ist ja einfach:

    Fields zerlegen
    Unteres Field eine Zeile verschieben
    Fields auf volle Größe resizen
    Mit Interleave alles zusammensetzen

    Aber egal, was ich tue: Das Ergebnis sieht immer so aus wie das vom internen Bob()-Befehl, also keinesfalls überzeugend und nicht annähernd so gut wie das, was z.B. SmoothDeinterlace(Doublerate=true) erzeugt.
    Vielleicht habe ich ja bloß wieder eine Denkblockade, aber irgendwie muss das doch gehen. Was macht der SmoothDeinterlace denn anders?

    Gruß,
    Kika

  • Zitat

    Was macht der SmoothDeinterlace denn anders?


    Vielleicht adaptiv Bewegung berücksichtigen?

    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

  • Zitat

    Smoothdeinterlace() ist auch nicht mehr das Gelbe vom Ei, was Qualität und Geschw. angeht.


    Ich weiß, ich weiß, aber alte Leute trennen sich doch so ungern von lieb gewonnenen Dingen. ;)

    Zitat

    du solltest dir mal KernelBob() ansehen.


    Das habe ich sowieso vor. Aber so ein Marke Eigenbau-Bobber direkt in AVISynth hätte den einen oder anderen Vorteil. Gerade, weil ich zurzeit dabei bin, uralte Video8- und VHS-C-Aufnahmen zu sichern.

  • Na hoffentlich bringe ich jetzt da nix durcheinander, aber KernelBob() ist ja eben das was du vorhast: Ein Bobber als avsi Funktion, basierent auf Kerneldeint()

    Code
    function kernelbob(clip a, int th)
    {	ord = getparity(a) ? 1 : 0
    	f=a.kerneldeint(order=ord, sharp=true, twoway=true, threshold=th) 
    	e=a.separatefields.trim(1,0).weave.kerneldeint(order=1-ord, sharp=true, twoway=true, threshold=th)
    	interleave(f,e).assumeframebased
    }

    Und hier wurde ein neues build rausgebracht.

    http://forum.doom9.org/showthread.php…light=kernelbob
    (sehe gerade das Kernelbob() dort in den dll code als option intergiert worden ist.)

  • Jirks, so allmählich komm' ich durcheinander. Das, auf das Du verlinkt hast, ist ein Filter, basierend auf Scharfis Funktion. Na, jetzt weiß ich wenihstens, warum ich's immer verwirrend fand, wenn von KernelBob die Rede war...

    Aber so, wie ich das jetzt sehe, geht das mit AVISynth-Boardmitteln allein wohl nicht. Ein PlugIn muss sein. Immerhin weiß ich jetzt, wie ein dummer Bobber funktioniert. ;)

  • Und im englischen doom9-Forum ging's ja mit TMCBob, TMCKernelBob & Co. noch weiter...

    Und dann hab ich auch noch behauptet, das Ergebnis von "aDeInt" würde mir reichen... :redface:
    __

    So richtig gut werden die Deinterlacer erst, wenn Motion-Kompensation und Maskierung mit hineinkommt. Man kann ja nicht immer Informationen aus angrenzenden Fields mitverwenden. Kennst du den Vergleich mit den B-Frames und der sich öffnenden Tür?

  • Ich hoffe, Scharfi sagt mal was darüber, wie die KernelDeint-Funktion KernelBob() im Vergleich zur Skript-Funktion KernelBob() abschneidet.
    Ich möchte es nämlich nach Möglichkeit vermeiden, mir nochmal die halbe Nacht mit Experimenten um die Ohren zu schlagen. ;)

    Vieleicht sollte man diesen Themenbereich mal irgendwo zusammen fassen. Ist ein wenig schwierig, die Diskussion über mehrere Threads in 2 Foren zu verfolgen.

Jetzt mitmachen!

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