Beiträge von Groucho2004

    AviSynth-2.0x-Plugins sollte man nicht mehr im AutoLoad-Plugin-Verzeichnis aufbewahren.


    Von welchen 2.0 Plugins sprichst du? C 2.0 oder CPP 2.0?
    C-Plugins sollten grundsätzlich nicht im AutoLoad Verzeichnis sein, es sei denn man benutzt Avisynth+ das C-Plugins automatisch laden kann (aber nur C 2.5 Plugins, C 2.0 Plugins werden nicht unterstützt).

    Um alte Avisynth C 2.0 Plugins zu laden braucht man "avisynth_c.dll". Wenn sich diese DLL im Plugin-Verzeichnis befindet, muss jedes (2.0 und 2.5) C-Plugin mit "Load_Stdcall_Plugin()" geladen werden da avisynth_c.dll den "LoadCPlugin()" Aufruf "hijacked".

    Es gibt uebrigens auch yadifmod2.

    MDeGrain2.avs mit AviSynth MT:

    Code
    SetMTMode(3, 0)AVISource("YourFile.avi")SetMTMode(5)super = MSuper(pel=2, sharp=1)backward_vec2 = MAnalyse(super, isb = true, delta = 2, overlap=4)backward_vec1 = MAnalyse(super, isb = true, delta = 1, overlap=4)forward_vec1 = MAnalyse(super, isb = false, delta = 1, overlap=4)forward_vec2 = MAnalyse(super, isb = false, delta = 2, overlap=4)MDegrain2(super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400)


    Mdgrain_avsmeter.jpg

    ca. 6 fps im SetMTMode 5 und/oder 6 (drunter spinnt er) (Win7/64, i7 2600k (3,4GHz) (4 Cores (8 Threads)), 8GB RAM)
    So mit 720x576 interlaced Material


    Manchmal hilft es, die Dokumentation (in diesem Fall Avisynth MT) zu lesen:

    (WinXP/32, i5 2500k (4GHz) (4 Cores (4 Threads)), 4GB RAM)

    Läuft ohne jegliches "Spinnen". :D

    Nicht CUDA, nur PureVideo.


    Aus der DGIndexNV-Dokumentation:

    Zitat

    Decode_Modes=0/1/2,0/1/2,0/1/2: The order of the parameters corresponds to AVC video, MPEG2 video, and VC1 video. A value of 0 selects CUVID decoding; a value of 1 selects CUDA decoding; a value of 2 selects DXVA decoding. For example, "Decode_Modes=0,1,0" causes CUDA to be used for MPEG2 video and CUVID for AVC and VC1 video. By default, CUVID is used for AVC and VC1, and CUDA is used for MPEG2.

    Falls du auf AviSynth 2.60 MT von SEt umsteigen möchtest, solltest du beachten, dass du es mit der Anzahl Threads nicht übertreiben darfst, weder für die Parallel-Ausführung von QTGMC insgesamt noch für die Parallelisierung einzelner Komponenten (sonst multipliziert sich die Thread-Anzahl, und dann warten alle nur noch aufeinander). Bei einem intel Quad-Core mit HyperThreading werden 8 logische Kerne erkannt, aber 8 Threads sind definitiv zu viele, man sollte auf vielleicht 3 oder höchstens 4 begrenzen. Dazu zählen folgende Stellen:

    •  SetMTMode(mode, skript_threads) beim ersten Aufruf vor dem Quellfilter (bei dir: AviSource)
    •  avstp_set_threads(avstp_threads) für die Parallelisierung der MVTools
    •  QTGMC(..., EDIThreads=edi_threads) für die "Edge Directed Interpolation" (Vergrößerung mit Kantenschutz innerhalb von QTGMC); dfttest verwendet übigens ebenso viele eigene Threads wie NNEDI3, außer man definiert das mit QTGMC(..., DftThreads=dft_threads) anders

    Ein Skript mit SetMTMode(2, 4) und QTGMC(..., EDIThreads=3) würde also in 4 parallelen Threads zur Ausführung des Skriptes jeweils NNEDI und dfttest mit 3 eigenen Threads für sich parallel ausführen, wodurch in diesen Momenten dann bis zu 4*3=12 Threads parallel arbeiten könnten (plus eine AviSynth-Basis, z.B. zur Ausgabe des Ergebnis-Videos). Mit 8 logischen Kernen ist das schon eine gewisse Verwaltungsarbeit für das Betriebssystem, und der RAM füllt sich...


    Alles richtig aber mit AVS MT sollte avstp.dll nicht benutzt werden. Die beiden spielen überhaupt nicht gut zusammen.

    Was nun den praktisch nicht vorhandenen Geschwindigkeitsunterschied angeht ... avstp beschleunigt nur einen kleinen Anteil am gesamten QTGMC-Skript. Aber ausgerechnet ein ziemlich langsamer Anteil wird immer noch nur in einem Thread ausgeführt.


    Bei mir ist der Unterschied deutlich, ich benutze allerdings nicht die QTGMC() DeNoise-Funktionen sondern einen GPU-Denoiser(KNLMeansCL).

    hab nochmal probiert mit und ohne avstp:

    2016-01-30 10_50_21-Administrator_ C__Windows_system32_cmd.exe.png

    der erste Aufruf mit parameter: avstp_set_threads (8)
    der zweite ohne avstp (mit "#" auskommentiert)
    der dritte mit parameter: avstp_set_threads (4)
    alles ohne Denoise (video = QTGMC(video,Preset="slow")#,NoisePreset="medium",EZDenoise=1.5)) DenoisePresets auskommentiert


    Beim ersten Aufruf läuft mvtools2 mit 8 Threads
    Beim zweiten Aufruf läuft mvtools2 ebenfalls mit 8 Threads
    Beim dritten Aufruf läuft mvtools2 mit 4 Threads

    cretindesalpes' mvtools2 2.6.0.5 benutzt avstp.dll zum Multi-Threading wenn sie sich im gleichen Verzeichnis befindet. Ohne die Angabe von "avstp_set_threads()" wird die Anzahl der logischen CPU-Kerne gesetzt. Um mvtools2 ohne avstp zu testen musst du die Datei löschen oder umbenennen (z.B. "avstp.dl").

    Dfttest ist intern multi-threaded und ziemlich langsam und maskiert deswegen den Unterschied. Wenn du das Ganze mal ohne Noise-Presets laufen laesst siehst du den Unterschied. Ausserdem ist CPU-Auslastung sekundaer. Was helfen 100% Auslastung wenn das Skript ineffiezient ist. Tipp: Benutze AVSMeter zum Vergleichen von Speed/CPU-Auslastung.