Ist in der aktuellen Hybrid Version schon der TemporalDegrain v2 Filter von avisynth enthalten?
Den würde ich sehr gerne mal testen.
Hybrid: Input -> x264/x265/Xvid/VP8/VP9/AV1
-
-
Nein, spricht aber nichts dagegen, dass man es testet indem man einen Custom-Eintrag anlegt und in diesem die benötigten Abhängigkleiten läd und den Filter aufruft.
Cu Selur
-
klingt gut, nur wie genau mache ich das?
-
Was man machen muss, ist sich überlegen wie muss der Einschub aussehen den man Hybrid füttert.
- Schauen welche Abhängigkeiten haben das Skript was man testen will.
Code
Alles anzeigen# Required plugins: # # FFT3DFilter: https://github.com/pinterf/fft3dfilter/releases # # MaskTools2: https://github.com/pinterf/masktools/releases # # MVtools2 (mt_*): https://github.com/pinterf/mvtools/releases # # rgTools (RemoveGrain,Repair): https://github.com/pinterf/RgTools/releases # # # # Optional plugins: # # Dither tools: http://avisynth.nl/index.php/Dither_tools # # dfttest: https://github.com/DJATOM/dfttest/releases # # KNLMeansCL: https://github.com/Khanattila/KNLMeansCL/releases # # FFT3DGPU: https://github.com/pinterf/FFT3dGPU/releases # # HQdn3D: http://avisynth.nl/index.php/Hqdn3d #
Quelle: http://avisynth.nl/images/TemporalDegrain-v2.avsi
Ganz schöner Stappel.
->
Code
Alles anzeigenLoadPlugin("I:\Hybrid\32bit\AVISYN~1\LoadDll.dll") # für FFT3DFilter # Plugins Laden LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # HQdn3D LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\FFT3DFilter.dll") # FFT3DFilter LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\\FFT3dGPU.dll") # FFT3DGPU LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\masktools2.dll") # MaskTools2 LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\mvtools2.dll") # MVtools2 LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\RgTools.dll") # rgTools LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\dither.dll") # Dither tools LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\dfttest.dll") # dfttest LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\KNLMeansCL.dll") # KNLMeansCL LoadPlugin("PFAD ZU Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # Hilfs .dlls der Plugins laden LoadDLL("PFAD ZU Hybrid\32bit\avisynthPlugins\libfftw3f-3.dll") # FFT3DFilter LoadDLL("PFAD ZU Hybrid\32bit\avisynthPlugins\d3dx9_30.dll") # FFT3DGPU # eventuelle Skripte laden Import("PFAD ZU Hybrid\32bit\avisynthPlugins\dither.avsi") # Dither tools # das eigentliche Skript laden: Import("PFAD ZU TemporalDegrain-v2.avsi") # DAS SKRIPT ;)
- Sich überlegen wo der Einschub platziert werden soll, z.B. vor DeNoise.
Also z.B. "Avisynth->Custom" auf "DeNoise" stellen und 'Insert berfore:->enable' aktivieren.
- ein Einschub in Hybrid eintragen
Also das obere plus den Aufruf des Skripts eintragen:
z.B. "TemporalDegrain2()"
und ans Ende ein:
'return last' packen.
Was man also z.B. als Einschub verwenden würde wäre:
Code
Alles anzeigen# Plugins Laden LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # HQdn3D LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\FFT3DFilter.dll") # FFT3DFilter LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\\FFT3dGPU.dll") # FFT3DGPU LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\masktools2.dll") # MaskTools2 LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\mvtools2.dll") # MVtools2 LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\RgTools.dll") # rgTools LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\dither.dll") # Dither tools LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\dfttest.dll") # dfttest LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\KNLMeansCL.dll") # KNLMeansCL LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # Hilfs .dlls der Plugins laden LoadDLL("i:\Hybrid\32bit\avisynthPlugins\libfftw3f-3.dll") # FFT3DFilter LoadDLL("i:\Hybrid\32bit\avisynthPlugins\d3dx9_30.dll") # FFT3DGPU # eventuelle Skripte laden Import("i:\Hybrid\32bit\avisynthPlugins\dither.avsi") # Dither tools # das eigentliche Skript laden: Import("i:\TemporalDegrain-v2.avsi") # DAS SKRIPT ;) TemporalDegrain2() return last
und im Avisynth Script View würde man dann etwas wie:
Code
Alles anzeigenLoadCPlugin("I:\Hybrid\32bit\AVISYN~1\ffms2.dll") SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) # loading source: F:\TestClips&Co\files\test.avi # input color sampling YV12 # input luminance scale tv FFVideoSource("F:\TESTCL~1\files\test.avi",cachefile="E:\Temp\avi_078c37f69bb356e7b5fa040c71584c40_853323747_1_0.ffindex",fpsnum=25,colorspace="YV12") # current resolution: 640x352 # filtering # color modifications Tweak(bright=10.00) # CUSTOM SCRIPT PART - position: DeNoise - START function CustomDeNoise(clip clp) { last=clp # Plugins Laden LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # HQdn3D LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\FFT3DFilter.dll") # FFT3DFilter LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\\FFT3dGPU.dll") # FFT3DGPU LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\masktools2.dll") # MaskTools2 LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\mvtools2.dll") # MVtools2 LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\RgTools.dll") # rgTools LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\dither.dll") # Dither tools LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\dfttest.dll") # dfttest LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\KNLMeansCL.dll") # KNLMeansCL LoadPlugin("i:\Hybrid\32bit\avisynthPlugins\hqdn3d.dll") # Hilfs .dlls der Plugins laden LoadDLL("i:\Hybrid\32bit\avisynthPlugins\libfftw3f-3.dll") # FFT3DFilter LoadDLL("i:\Hybrid\32bit\avisynthPlugins\d3dx9_30.dll") # FFT3DGPU # eventuelle Skripte laden Import("i:\Hybrid\32bit\avisynthPlugins\dither.avsi") # Dither tools # das eigentliche Skript laden: Import("i:\TemporalDegrain-v2.avsi") # DAS SKRIPT ;) TemporalDegrain2() return last } # CUSTOM SCRIPT PART - position: DeNoise - END CustomDeNoise() # loading custom script content PreFetch(8) return last
sehen.
- Schauen welche Abhängigkeiten haben das Skript was man testen will.
-
muss natürlich beim LoadPlugin Teil noch dazu, damit die Hilfs-.dlls auch geladen werden können.
(Sorry, aber ich traue mich nicht den obrigen Post zu editieren um das oben noch Einzuschieben)
Hoffe ich habe sonst keinen groben Vertipper gemacht.
---
In der TemporalDegrain-v2.avsi stehen auch die Parameter ihre Standardwerte.
Cu Selur
-
vielen Dank. das werde ich mir morgen gleich mal vornehmen
-
so, test läuft. ich bin gespannt. vielen Dank für deine Hilfe
-
hmm, beim output video ist fast noch das komplette Bildrauschen zu erkennen. ich vermute, da lief nur der denoise filter oder ich hatte die degrain intensität auf 0 stehen.
im Avisynth Script View wurde mir alles, wie du vermutetest angezeigt. ich habe die einstellung gespeichert und anschließend gestartet.
da das encoding ca. 90 min lief, statt normalerweise ein paar min ohne degrain filter, ging ich davon aus, dass der filter richtig angewendet würde.
hätte ich vor dem start noch etwas umstellen oder auswählen müssen?
Viele Grüße
-
Zitat
hätte ich vor dem start noch etwas umstellen oder auswählen müssen?
Ne, hört sich an, als ob Du alles richtig machst.
Der Filter ist nicht so flott (vor allem wenn fft3dfilter verwendet wird) und ist var allem für leichte Rauschentfernung und weniger zum Denoisen gedacht
Vielleicht interessant:
Code
Alles anzeigen# recommendation: # 1. start with default settings # 2. compare the output on the noisiest* patch of your movie with grainLevel enabled (=true) and disabled (=false) and use the setting where the noise level is lower. If no method yeilds a significantly result than choose "false". (*it really MUST be the noisiest region of the WHOLE movie) # 3. if more denoising is needed try postFFT=1 with postSigma=1 and postDither=-1, then tune postSigma (obvious blocking and banding of regions in the sky are indications of a value which is at least a factor 2 too high) # 4. if you would need a postSigma of more than 2, try first to increase degrainTR. The goal is to balance postSigma and degrainTR. However, do not increase degrainTR above 1/8th of the fps (at 24fps up to 3). # 5. if there are any issues with banding switch to postFFT=3 # use only the following knobs (all other settings should already be where they need to be): # - degrainTR, temporal radius of degrain, usefull range: min=default=1, max=fps/8. Higher values do clean the video more, but also increase probability of wrongly identified motion vectors which leads to washed out regions # - grainLevel, if input noise level is relatively low set this to false. This setting must be left enabled if disabling it increases the output noise level while all other settings are at default. # - postFFT, if you want to remove absolutely all remaining noise suggestion is to use 3 (dfttest) for its quality or 1 (ff3dfilter) is much faster but can introduce banding. 2 and 4 are GPU based versions. # - postSigma, increase it to remove all the remaining noise you want removed, but do not increase too much since unnecessary high values have severe negative impact on either banding and/or sharpness # - postDither, positive values are used as parameter for dfttest (values above 2 can remove preexinsting banding), negative values indicate 16 bits FFT processing (to be used only with postFFT=1 or in case of strong paranoia regarding banding) # - degrainPlane, if you just want to denoise the chroma use 3 (helps with compressability with the clip being almost identical to the original)
aus dem Script.
-> Gerade bei neuen Filtern am Besten erst mal FilterView aktivieren eventuell auch SplitView und Input mit Output vergleichen.
Cu Selur
-
mir ist in der Regel degrain wesentlich wichtiger als denoise. bezüglich denoise, bin ich mit dem normalen HQdenoise3d filter sehr zufrieden, der ja wesentlich schneller ist.
hatte jetzt gehofft, dass der temporal degrain 2 filter hinsichtlich degrain noch etwas bessere Ergebnisse liefert oder schneller ist als temporal degrain (v1).
Aber wenn die default settings nicht degrain so gut wie deaktiviert haben, dann dauert dieser neue filter zwar fast genauso lange wie der, den wir schon in hybrid haben, liefert aber so gut wie gar kein degrain (wenn überhaupt).
-
Wenn ich mich recht entsinne sollte TemporalDegrain2 vor allem etwas schärfere Ergebnisse liefern können als TemporalDegrain, so wie ich die 'recommendation' verstehe sollte man i.d.R. immer die Werte anpassen um brauchbare Ergebnisse zu erreichen.
Da ich den Filter aber noch nie wirklich verwendet habe, kann ich leider nicht wirklich was zu ihm sagen.
Cu Selur
-
Da muss ich mich aber mal melden..
Wenn du kaum oder gar keine Veränderung wahrnimmst mit TemporalDegrain-v2, dann stimmt deine Syntax nicht.
Eigentlich haut der Degrainer tierisch rein...
Aber es sind so viele Switches, Bells und Whistles.
Ist schon so lange her das ich mich damit beschäftigt habe,
aber wenn ich mich recht erinnere ist von reiner CPU bis (fast) reiner GPU Bearbeitung alles drin.
Von Ultraschnell bis Quälendlangsam...
Ja, und egal was du wählst, es wird immer ewig dauern.
Wie mit den meisten hochwertigen Degrainern...
Ist dein Material HD oder sogar UHD?
Dann vergiss es.
Deine Stromrechnung wird es dir danken.
Meine 2 Cents.
-
Denke Empfehlunge&Co bzgl. des Filters sollten im AviSynth Unterforum besprochen werden.
(ohne ein Sample der Quelle und die verwendeten Einstellungen wird aber auch dort vermutlich kaum jemand etwas empfehlen können)
Cu Selur
-
Ist vlt. eine Idee. Ich habe nur gestern gesehen, dass es eine neue version des temporal degrain filters gibt und wollte sie mal testen.
Vom aktuell in hybrid implementierten avisynth temporal degrain filter bin ich schwer begeistert und nutze ihn seit 2-3 Jahren häufiger für verrauschtes Material. Die Bearbeitung dauert zwar bei 45 min Videos statt 2-3 min bei meinem System idR. ca 2 h, aber dafür ist das Ausgangsbild auch kristallklar und das ist mir den Aufwand in jedem Fall wert. Nur bei stark verrauschten Bildern, bei denen aufsteigender Rauch oder Wolken oder Ähnliches dargestellt werden soll, kommt es bei diesem Filter hin und wieder zu Schlierenbildung.
Meine Hoffnung war es, dass eben diese Schlierenbildung bei der neuen Version nicht mehr auftritt oder dass die neue Version effizienter/schneller ist. Auf der wiki Seite steht ja, dass sie etwas bessere Ergebnisse liefern soll. Aber es kann natürlich gut sein, dass die besseren Ergebnisse dort überwiegend auf denoise abzielen, obwohl mich das bei einem temporal deGRAIN filter etwas überraschen würde.
Viele Grüße
-
Augur89: Hab dir ne 'PM' (hier im Board heißt das wohl Konversation) erstellt und Dir nen Link zu ner Dev Version mit TemproalDegrain2 Support geschickt.
Cu Selur
-
wow super, vielen Dank
-
so, ich habe den Temporal Degrain 2 Filter jetzt diversen Tests unterzogen mit einem 45 minütigen relativ verrauschten 1080p Video.
Ich habe alle möglichen Filtereinstellungen getestet und enttäuschenderweise lieferte der neue Filter jedes Mal schlechtere Ergebnisse als der alte.
Aber es war einen Test wert und nochmals vielen Dank für das Bereitstellen der Dev Version mit Filter.
Bei der Gelegenheit bin ich über den Vapoursynth temporal degrain Filter gestoßen, der beinahe 3x so schnell ist und annähernd gleiche Ergebnisse liefert.
=> Ich werde mich jetzt einfach an den halten.
Viele Grüße
PS: Bei stark verrauschtem Szenen mit dunklem Hintergrund liefert der Avisynth temporal degrain filter doch deutlich bessere Ergebnisse als vapoursynth
-
Hybrid rev 2019.11.23.1:
*fixed*
- muxing: ffmpeg indicating vfr even when video is cfr
- video: x265 HDR-10+ signaling
- video: maxCLL typo related to STV-HEVC encoding (can't be used there anyways so more a cosmetic fix)
- video: NVEncC multi level typo bug
- Avisynth: crop not working with custom resizer
- muxing: mp4 language passthrough
- gui: VIDEOHANDLING problem on Linux
*changed*
- profiles: Do not allow to load Global Profiles while a source is loaded.
- Vapoursynth: Make sure that after QTGMC the clip is preceived as frame based.
- video: NVEncC allow L0 and L1 references at the same time
- video: x265 added support for 'scenecut-aware-qp' with 'scenecut-window' and 'max-qp-delta'
-> downloads: http://www.selur.de/downloads
Cu Selur
-
Hybrid rev 2019.12.01.1:
*fixed*
- video: x265 make sure 'fixed quantizer' zones use integer
*changed*
- muxing: Hybrid doesn't send 'und' to MP4Box but empty language strings
*added*
- muxing: option to overwrite not only container but additionally stream aspect ratio
-> downloads: http://www.selur.de/downloads
Cu Selur
-
wäre es möglich, hybrid noch um einen audio entrausch-filter und einen audio-denoise filter zu erweitern?
momentan mache ich das über acoustica und dachte mir, das wäre eine nette Ergänzung für hybrid
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!