Wenn ich mich recht erinnere, ist ihr Zweck nicht, das Rauschen zu vermindern, sondern es mathematisch leichter komprimierbar zu modellieren.
4K UHD Denoising mit FFT3DGPU,FFT3DFilter,neo_fft3d (Performance,Bugs,VapourSynth-Umsetzung,...)
-
-
Nebenbei: Mal überlegt anstatt AviSynth&Co zu nutzen mal eher die Noisereduction in x264&x265 zu verwenden?
Zumindest wenn es vor allem um erhöhte Komprimierbarkeit geht sollte die NoiseReduction nicht schlecht sein.
Ja, kenn ich die Funktion, und es wäre aufgrund der Anmerkung von LigH bezüglich der Erhöhung der Komprimierbarkeit ohne wirkliches Reduzieren des Rauschens eine Idee, das künftig bei Videos mit eher wenig Artefakten zusätzlich mit moderaten Werten zuzuschalten und bei fft3dgpu Sigma etwas abzusenken.
Oder aus Performancegründen (bei 4K, 10Bit & Co) wäre es bei solchen Videos wohl auch einen Versuch Wert nur Y mit fft3dgpu zu filtern, und dann noch den x264 denoiser mit 1000-2500 zuzuschalten.
Allerdings geht es mir nun auch nicht ausschließlich um die Komprimierbarkeit, es dürfen auch gerne hässliche Effekte im Original reduziert werden.
Die Möglichkeit z.B. mit Hybrid "Only Dark" Bereiche an fft3dgpu zu geben, oder in fft3dgpu nur Y oder UV oder bestimmte Frequenzbereiche stärker zu filtern, ist schon nicht schlecht. So kann man sich auf Bereiche konzentrieren, die besonders durch Artefakte auffallen, da mit hohen Sigma Werten filtern und den Rest schonend behandeln.
-
4K content mit fft3dgpu im mode 2 nur Y zu filtern scheint tatsächlich eine Alternative zu sein (bei meiner mittlerweile etwas schwachbrüstigen GPU). Den üblichen, selbst nervig auffälligen noise bekommt man trotzdem gut reduziert. Wenn man dann noch den Codec-internen noise filter mit z.B. nur 1000 mitlaufen lässt, passt auch die Komprimierbarkeit. Chroma noise reduction bei 4K werde ich mir (außer für Testzwecke) denke ich künftig schenken, wenn's nicht gerade explizit in der Hinsicht stark verhunztes Material mit irgendwelchem stark auffälligem Farbflimmern ist.
Und hast du mal überlegt bei fft3dgpu die Konvertierung ins Zielfarbformat per default for den Filteraufruf zu setzen?
Kann ja heute Abend mal noch testen wie's bei YUV422 aussieht. RGB content hab ich leider keinen.
Ich finde potentiell bis zu 82% mehr Speed sind ein Effizienzgewinn, der nicht ignoriert werden sollte, wenn da am Ende praktisch identischer content rauskommt und gerade im UV Bereich der SSIM fast durchgängig bei 0.999x liegt. Bei PSNR + MSE sieht's ähnlich aus, selbst einzelne Ausschläge bewegen sich in einem bei 10 Bit content völlig unbedenklichen Bereich. Würde fast wetten, dass crf 16 statt crf 19 bei x264 die Unterschied noch weiter marginalisiert (und das ist es ja, was ein Adlerauge vermutlich verwenden würde).
Für den einen User, der's unbedingt braucht heutzutage so viel zusätzliche Rechenzeit zu verplempern um einen nicht sichtbaren Unterschied im Output zu haben, könnte man diese Avisynth TuneUp Einstellung ja umkehrbar machen. aber vermutlich existiert dieser User ohnehin nicht, denn der würde vermutlich gar keinen noise filter verwenden
Werde bei Gelegenheit auch mal checken wie's sich mit fft3dfilter + neo_fft3d verhält und ob das eher was mit den fft Algorithmen oder mit fft3dgpu im speziellen zu tun hat.
-
Zitat
Und hast du mal überlegt bei fft3dgpu die Konvertierung ins Zielfarbformat per default for den Filteraufruf zu setzen?
Nope. Bin kein Freund von erzwungenen Konvertierungen.
Aktuell macht Hybrid das so:
1. Jeder Filter hat eine Menge an Farbräumen zu denen er kompatible ist.
2. Konvertiert wird nur wenn der aktuelle Farbraum nicht in dieser Menge ist.
Dadurch sollen so lange wie möglich Informationen aus der Quelle erhalten bleiben.
Was Du machen kannst ist einfach wo immer Du willst in eine entsprechende 'Custom'-Sektion einen Convert-Aufruf packen und Hybrid mit:
wissen lassen, dass in der Custom-Sektion sich das Farbformat geändert hat.
Cu Selur
-
cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv - 4K, 10 bit, YUV422 mit FFT3DGPU
FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-prefetch(1,X+1)-ConvertToYUV420() [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\d3d9.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\FFT3dGPU.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # current resolution: 3840x1608 # denoising using fft3dgpu FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2) PreFetch(1,$$DYNMEASUREVARGAP$$) # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-prefetch(1,X+1)-ConvertToYUV420() [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 7.83 fps, 92400.77 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846540 (8.140056) U:0.980199 (17.033228) V:0.978513 (16.678183) All:0.890812 (9.618259) ## PSNR y:17.832339 u:33.634492 v:32.988516 average:19.532021 min:7.664472 max:64.968725 3 FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-prefetch(1,X+1)-ConvertToYUV420() [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 7.84 fps, 92407.90 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846540 (8.140059) U:0.980199 (17.033229) V:0.978513 (16.678194) All:0.890812 (9.618263) ## PSNR y:17.832339 u:33.634493 v:32.988517 average:19.532021 min:7.664472 max:64.968725 6 FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-prefetch(1,X+1)-ConvertToYUV420() [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 7.82 fps, 92406.58 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846540 (8.140060) U:0.980200 (17.033251) V:0.978513 (16.678214) All:0.890812 (9.618265) ## PSNR y:17.832339 u:33.634496 v:32.988517 average:19.532021 min:7.664472 max:64.968725
Bestwert: 7.84 fps
ConvertToYUV420-prefetch(X)-FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-PreFetch(1,X+1) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\d3d9.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\FFT3dGPU.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # current resolution: 3840x1608 # denoising using fft3dgpu FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2) PreFetch(1,$$DYNMEASUREVARGAP$$) PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 ConvertToYUV420-prefetch(X)-FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-PreFetch(1,X+1) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 8.92 fps, 91635.39 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846541 (8.140065) U:0.980629 (17.128533) V:0.979057 (16.789703) All:0.890975 (9.624733) ## PSNR y:17.832339 u:33.644858 v:32.999214 average:19.532167 min:7.664472 max:64.968725 3 ConvertToYUV420-prefetch(X)-FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-PreFetch(1,X+1) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 8.77 fps, 91641.51 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846541 (8.140066) U:0.980629 (17.128522) V:0.979057 (16.789685) All:0.890975 (9.624733) ## PSNR y:17.832339 u:33.644858 v:32.999212 average:19.532167 min:7.664472 max:64.968725 6 ConvertToYUV420-prefetch(X)-FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-PreFetch(1,X+1) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 8.76 fps, 91637.83 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.846540 (8.140060) U:0.980629 (17.128507) V:0.979057 (16.789653) All:0.890975 (9.624726) ## PSNR y:17.832339 u:33.644854 v:32.999213 average:19.532167 min:7.664472 max:64.968725
Bestwert: 8.92 fps
-> X264 13,8% schneller mit ConvertToYUV420() for Filteraufruf.
6 FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-prefetch(1,X+1)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AvsMeter64):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.388 | 46948 | 7.404 Process memory usage (max): 2250 MiB Thread count: 45 CPU usage (average): 13.2% GPU usage (average): 79% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:03:06.782
6 ConvertToYUV420-prefetch(X)-FFT3DGPU(bw=64,bh=64,degrid=1.00,plane=4,mode=2,bordersize=1,precision=2)-PreFetch(1,X+1) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AvsMeter64):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.393 | 30960 | 8.769 Process memory usage (max): 1947 MiB Thread count: 51 CPU usage (average): 13.5% GPU usage (average): 77% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:02:37.717
-> Avsmeter64 18,4% schneller mit ConvertToYUV420 vor Filteraufruf.
Qualitätsmetriken - direkter Vergleich der beiden output clips miteinander:
CodeSSIM Y:0.998380 (27.904786) U:0.998879 (29.502780) V:0.998719 (28.923470) All:0.998520 (28.296061) PSNR y:56.946899 u:58.587585 v:58.052360 average:57.355967 min:51.789978 max:inf PSNR y:56.907363 u:58.585376 v:58.050940 average:57.326495 min:51.783484 max:inf VMAF score: 99.142670
-> Auch hier für Normalnutzer vernachlässigbare marginale Unterschiede zwischen den beiden output videos.
-
Yes, if you feed FFT3DGPU with a color space which holds less data to filter it is faster.
-
Yes, if you feed FFT3DGPU with a color space which holds less data to filter it is faster.
Antworte mal auf deutsch, sonst brauch ich hier noch länger um was "zu Papier" zu bringen
Am deutlichsten ist's wohl beim YUV444 Farbraum, aber auch hier bei YUV422.
Am Ende der x264 logfiles sind diesmal jeweils per ffmpeg die Unterschiede im SSIM/PSNR zwischen dem unveränderten input video und dem output Video ermittelt (keine Werte von x264, welches den Unterschied zwischen gefiltertem input und dem output video wiedergeben würde).
Man muss bedenken, dass ich hier mit CRF 10 gearbeitet habe, d.h. schon das sind Werte, die wohl die meisten als "nahe losless" bezeichnen würden.
Die Werte, wenn das akuratere setting mit ConvertToYUV420() erst am Ende verwendet wurde, Vergleich input mit output:
CodeSSIM Y:0.846540 (8.140056) U:0.980199 (17.033228) V:0.978513 (16.678183) All:0.890812 (9.618259) PSNR y:17.832339 u:33.634492 v:32.988516 average:19.532021 min:7.664472 max:64.968725
Die Werte beim Vergleich output FFT3DGPU-ConvertToYUV420 mit output ConvertToYUV420()-FFT3DGPU:
CodeSSIM Y:0.998395 (27.944505) U:0.998879 (29.505425) V:0.998719 (28.925446) All:0.998530 (28.325625) PSNR y:56.946899 u:58.587585 v:58.052360 average:57.355967 min:51.789978 max:inf
-> PSNR + SSIM sind bei logarithmischer Skala im UV Bereich trotz der vorgezogenen Farbraumkonvertierung fast doppelt so hoch wie zwischen Original und einem "regulär" mit CRF 10 enkodierten Video, nur um mal einen Maßstab zu haben um was für mickrige Unterschiede es da geht!
-
Bei neo_fft3d waren die Geschwindigkeitsunterschiede bei exakt gleichem Setup sogar noch deutlicher.
cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv - 4K, 10 bit, YUV422 mit neo_fft3d
neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\libfftw3f-3.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\neo-fft3d.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # current resolution: 3840x1608 # denoising using fft3dgpu neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) PreFetch($$DYNMEASUREVAR$$) # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 4.39 fps, 95777.60 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100933) U:0.980055 (17.001720) V:0.978293 (16.634040) All:0.889826 (9.579202) ## PSNR y:17.838652 u:33.644785 v:32.996759 average:19.538374 min:7.664826 max:inf 3 neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 5.17 fps, 95782.19 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100950) U:0.980056 (17.001863) V:0.978293 (16.634034) All:0.889826 (9.579221) ## PSNR y:17.838653 u:33.644781 v:32.996762 average:19.538374 min:7.664827 max:inf 6 neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 4.77 fps, 95781.57 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100942) U:0.980055 (17.001685) V:0.978294 (16.634162) All:0.889826 (9.579213) ## PSNR y:17.838653 u:33.644775 v:32.996723 average:19.538375 min:7.664828 max:inf
Bestwert 5.17 fps
ConvertToYUV420-prefetch(X)-neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\libfftw3f-3.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\neo-fft3d.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # current resolution: 3840x1608 # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # denoising using fft3dgpu neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 ConvertToYUV420-prefetch(X)-neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 5.14 fps, 94848.29 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100933) U:0.980484 (17.096091) V:0.978838 (16.744484) All:0.889988 (9.585604) ## PSNR y:17.838651 u:33.654234 v:33.006405 average:19.538507 min:7.664827 max:inf 3 ConvertToYUV420-prefetch(X)-neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 6.27 fps, 94846.35 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100931) U:0.980484 (17.096086) V:0.978838 (16.744504) All:0.889988 (9.585602) ## PSNR y:17.838652 u:33.654225 v:33.006364 average:19.538507 min:7.664827 max:inf 6 ConvertToYUV420-prefetch(X)-neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 5.84 fps, 94847.81 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845153 (8.100963) U:0.980485 (17.096244) V:0.978839 (16.744653) All:0.889989 (9.585641) ## PSNR y:17.838652 u:33.654230 v:33.006356 average:19.538507 min:7.664827 max:inf
Bestwert 6.27 fps
-> X264 21,3% schneller mit ConvertToYUV420() for Filteraufruf.
6 neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AVSMeter):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.215 | 105264 | 5.162 Process memory usage (max): 6057 MiB Thread count: 60 CPU usage (average): 89.5% GPU usage (average): 1% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:04:27.938
6 ConvertToYUV420-prefetch(X)-neo_fft3d(bw=64,bh=64,y=3,u=3,v=3,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AvsMeter):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.310 | 114942 | 7.011 Process memory usage (max): 5009 MiB Thread count: 56 CPU usage (average): 88.1% GPU usage (average): 1% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:03:17.261
-> Avsmeter64 35,8% schneller mit ConvertToYUV420() vor Filteraufruf!
Qualitätsmetriken - Beide output clips direkt miteinander verglichen:
CodePSNR y:56.610453 u:59.156317 v:58.542447 average:57.234147 min:51.751340 max:inf SSIM Y:0.998271 (27.620884) U:0.998980 (29.914837) V:0.998813 (29.254114) All:0.998479 (28.179166) VMAF score: 99.146489
Btw - obwohl FFT3DGPU bei 4K 10 Bit YUV422 content bereits meiner RX 560 Budget GPU mit 4 GB die Grenzen aufzeigt und sie mit knapp 80% auslastet, ist es immer noch 25,1% schneller. Stromverbrauch geht dabei, wie schonmal erwähnt um max 10% oder 30W hoch, in dem Fall ist er sogar niedriger, da die CPU sich die meiste Zeit langweilt
Und neofft3d lastet hier die CPU bereits mit rund 90% aus, da ist also für nen codec nicht viel Rechenkapazität übrig...
-
cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv - 4K, 10 bit, YUV422 mit FFT3DFilter
FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\libfftw3f-3.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("C:\PROGRA~1\Hybrid\64bit\Avisynth\avisynthPlugins\FFT3DFilter.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # current resolution: 3840x1608 # denoising using fft3dgpu FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) PreFetch($$DYNMEASUREVAR$$) # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 2.10 fps, 95773.04 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845151 (8.100927) U:0.980056 (17.001849) V:0.978293 (16.633982) All:0.889826 (9.579198) ## PSNR y:17.838652 u:33.644813 v:32.996736 average:19.538374 min:7.664827 max:inf 3 FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 2.97 fps, 95770.98 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100931) U:0.980056 (17.001861) V:0.978293 (16.633976) All:0.889826 (9.579202) ## PSNR y:17.838652 u:33.644812 v:32.996737 average:19.538373 min:7.664827 max:inf 6 FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 3.68 fps, 95768.74 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100936) U:0.980055 (17.001760) V:0.978293 (16.633974) All:0.889826 (9.579204) ## PSNR y:17.838655 u:33.644794 v:32.996752 average:19.538376 min:7.664828 max:inf
Bestwert 3.68 fps
ConvertToYUV420-prefetch(X)-FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log:
Code
Alles anzeigenREM ### Don't remove '%cd%\%dynFileName%' at beginning and end of cli call, this won't work! You should only modify the x264 parameters! "%hybridFolderWin%\64bit\Avisynth\avs2yuv64.exe" -depth 10 -nstdr "%cd%\%dynFileName%.avs" -o - | "%hybridFolderWin%\64bit\x264.exe" --preset ultrafast --crf 10.00 --profile high10 --level 5.2 --sync-lookahead 16 --vbv-maxrate 240000 --vbv-bufsize 720000 --threads 16 --sar 1:1 --non-deterministic --range tv --colormatrix bt709 --demuxer y4m --input-range tv --fps 24/1 --output-depth 10 --output "%cd%\%dynFileName%.264" - goto :EOF ClearAutoloadDirs() SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE) LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LoadDll.dll") LoadDLL("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\libfftw3f-3.dll") LoadPlugin("$$HYBRIDFOLDER$$\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll") LoadPlugin("C:\PROGRA~1\Hybrid\64bit\Avisynth\avisynthPlugins\FFT3DFilter.dll") # loading source: $$SOURCEVID$$ # color sampling YUY2@10, matrix: bt709, scantyp: progressive, luminance scale: limited LWLibavVideoSource("$$SOURCEVID$$",cache=false,format="YUV422P10", prefer_hw=0,repeat=true) # current resolution: 3840x1608 # adjust color to YV12 (color matrix: Rec709) ConvertToYUV420() PreFetch($$DYNMEASUREVAR$$) # denoising using fft3dgpu FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) PreFetch($$DYNMEASUREVAR$$) # setting output fps to 24.000fps AssumeFPS(24,1) # output: color sampling YV16@10, matrix: bt709, scantyp: progressive, luminance scale: limited return last -------------------------------------------------------------------------------- REPLACEMENTS: $$SIGMA$$ replaced with '2.00' $$BW$$ replaced with '64' $$BH$$ replaced with '64' $$BT$$ replaced with '3' $$PLANE$$ replaced with '4' $$MODE$$ replaced with '2' $$PRECISION$$ replaced with '1' $$BORDERSIZE$$ replaced with '1' $$HYBRIDFOLDER$$ replaced with 'C:\Program Files\Hybrid' $$HYBRIDFOLDER_VS$$ replaced with 'C:/Program Files/Hybrid' $$SOURCEVID$$ replaced with 'C:\BENCH_AVS_VPS_FILTER\fft3dgpu convert2yuv420\YUV422\cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$SOURCEVID_VS$$ replaced with 'C:/BENCH_AVS_VPS_FILTER/fft3dgpu convert2yuv420/YUV422/cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv' $$DYNMEASUREVAR$$ replaced dynamically [start,step,end] with '0,3,6' $$DYNMEASUREVARGAP$$ replaced dynamically [start,step,end] with '0,3,6' +- gap of '+1' -------------------------------------------------------------------------------- 0 ConvertToYUV420-prefetch(X)-FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 2.68 fps, 94831.87 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100933) U:0.980484 (17.096095) V:0.978839 (16.744582) All:0.889988 (9.585607) ## PSNR y:17.838654 u:33.654218 v:33.006380 average:19.538509 min:7.664828 max:inf 3 ConvertToYUV420-prefetch(X)-FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 3.79 fps, 94836.51 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100936) U:0.980484 (17.096087) V:0.978839 (16.744598) All:0.889988 (9.585611) ## PSNR y:17.838654 u:33.654218 v:33.006381 average:19.538509 min:7.664828 max:inf 6 ConvertToYUV420-prefetch(X)-FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv] encoded 1383 frames, 4.61 fps, 94839.48 kb/s ffmpeg quality metric comparing sourceVidWin and dynfileName: SSIM Y:0.845152 (8.100939) U:0.980484 (17.096089) V:0.978839 (16.744582) All:0.889988 (9.585613) ## PSNR y:17.838654 u:33.654221 v:33.006401 average:19.538509 min:7.664827 max:inf
Bestwert 4.61 fps
-> X264 25,3% schneller mit ConvertToYUV420() for Filteraufruf.
6 FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false)-prefetch(X)-ConvertToYUV420 [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AVSMeter64):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.189 | 91743 | 3.935 Process memory usage (max): 6547 MiB Thread count: 31 CPU usage (average): 81.2% GPU usage (average): 2% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:05:51.466
6 ConvertToYUV420-prefetch(X)-FFT3DFilter(bw=64,bh=64,plane=4,interlaced=false) [cut_TGM_TLR-C_3840x1608_HEVC_YUV422_10bit.mkv].log (AvsMeter64):
Code
Alles anzeigen[Runtime info] Frames processed: 1383 (0 - 1382) FPS (min | max | average): 0.122 | 74074 | 4.945 Process memory usage (max): 5460 MiB Thread count: 30 CPU usage (average): 83.5% GPU usage (average): 1% GPU Power Consumption (average): 0.5 W Time (elapsed): 00:04:39.701
-> Avsmeter64 25,8% schneller mit ConvertToYUV420() vor Filteraufruf!
Qualitätsmetriken - direkter Vergleich der beiden output clips miteinander:
-
Fazit für YUV422
Gleich vorneweg nochmal: Alle Messungen wurden, wie zuvor auch, per Skript mind. 2-3x durchgeführt und nur das beste Messergebis gespeichert um Zufallsschwankungen durch startende Hintergrundprozesse etc. möglichst auszuschließen bzw. zu reduzieren.
Hier sieht es doch so aus, als ob nicht nur das Multithreading bei neo_fft3d verbessert wurde.
CPU Auslastung war bei neo zwar 5-8% höher, aber neo_fft3d war bei bei
X264 bis zu 40,5% (regular) / 36% (early yuv420 conversion) schneller als das normale FFT3DFilter und bei AVSMeter bis zu 31,2% (regular) / 41,8% (early yuv420 conversion).
FFT3DGPU setzt sich hier logischerweise noch weiter von FFT3DFilter ab:
X264 213% (regular) / 193% (early yuv420 conversion) und AVSMeter 88,2% (regular) / 77,3% (early yuv420 conversion).
Bei X264 muss man bedenken, dass bei FFT3DGPU und x264 preset superfast die CPU zu nur etwa 15% ausgelastet war.Bei einem im realen Einsatz verwendeten preset fast oder medium müssten die Unterschiede noch gravierender sein, da dürften sich neo_fft3d + fft3dfilter nochmal knapp halbieren, während FFT3DGPU nur 10-25% langsamer werden sollte. Also selbst mit dieser älteren Budget GPU vermutlich real world Zugewinne um bis zum Dreifachen durch FFT3DGPU, da über 90% der Rechenkapazität fürs encoding freibleiben.
Für YUV422 input bei FFT3DFilter + neo_fft3d gilt: Sie kommen damit noch schlechter klar als FFT3DGPU, und der Geschwindigkeitsvorteil durch "early yuv420 conversion" bringt (im Fall von neo_fft3d) sogar fast doppelt so viel Geschwindigkeitszuwachs wie bei FFT3DGPU!
Hier sollte man erst Recht darüber nachdenken, den ConverToYUV420 call vorzuziehen, wenn man das chroma subsampling aufs übliche YUV420 ändert.
-
Nachtrag zum YUV422 Vergleich:
Hab bei den 3 Filtern noch SSIM und vor allem die Netflix Qualitätsmetrik VMAF ergänzt, die KI basiert arbeitet um die menschliche Wahrnehmung möglichst gut abzubilden.
Um es kurz zu machen: Die files bei denen die Farbraumkonvertierung vor dem Filteraufruf durchgeführt wurden Unterscheiden sich auch hier praktisch nicht. VMAF score liegt jedesmal über 99 (100 ist max).
So hohe Werte werden z.B. in der Praxis bei einem Vergleich Quelle -> encodetes file praktisch nie erreicht. Auch der SSIM liegt immer bei 0.99x.
Zip-Files hab ich durch neue mit den Logfiles und Werten für jedes einzelne Frame ersetzt
-
Den Unterschied zu 420 und 422 sieht man im normal Fall auch quasi nie. Selbst bei 444 ist das in Filmen praktisch nicht zu sehen.
Anders sieht es bei einem Monitor und Text aus. Da würde man es bemerken.
Gutes Beispiel https://www.geeks3d.com/20141203/how-t…your-4k-uhd-tv/
-
Deswegen kann man entsprechenden 444/422 Input auch auf 420 downsampeln, und das am Besten in einem AviSynth Skript gleich als allerestes, im Falle von 444 spart das immens Rechenleistung...
Jedenfalls ist es (außer vielleicht in irgendwelchen ganz speziellen Fällen, wo man irgendwas einzeln mit dem Chroma machen will) ziemlich unsinnig das erst am Ende des Skripts zu machen und desewegen bei 444 schlimmstenfalls die doppelte Rechenzeit in Anspruch zu nehmen.
OT: Putin hasst das...
-
Kommt immer auf den Kontent an, wenn man da Zeug hat was eh mal 4:2:0 war und wieder 4:2:0 werden soll und warum auch immer jetzt jedoch als 4:4:4 oder 4:2:0 vorliegt kann man auch einen Großteil der Inputdaten verwerfen.
Wenn man interlactes 4k auf SD Material runterskaliert kann man sich je nach dem auch das Deinterlacen sparen, da eh keine der Informationen das Downsizen überleben. *gig*
Cu Selur
-
Klar...
Mein ja nur, wenn man eh nach 420 encodet und hat warum auch immer ein 444 file vorliegen, dann scheint das für normale Augen keinerlei Unterschied zu machen, wenn man im Skript gleich als erstes das sampling auf 420 runterskaliert.
Sonst werden folgende Filter u.U. bis zum Faktor 2 runtergebremst. Das dann bewußt in Kauf zu nehmen ist wohl eher was für Gourmets, oder irgendwelche ganz speziellen Skripte, die im Verlauf irgendwo irgendwie ganz speziell die Chroma Informationen separat verwursten.
Ich als Otto-normal Avisynthler kenn da keinen Anwendungsfall, aber es gibt ihn bestimmt...
-
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!