View Full Version : MCTemporalDenoise [v1.4.20 - Update 2010/07/02]
Pages :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[
19]
kedautinh12
1st October 2022, 15:39
While I'm excited to finally have a high bit depth capable version of MCTD, I have to nitpick a bit. No newbie is ever going to get this version up and running chasing down all the right version of all the dependencies.
Also, how well tested is the high bit depth support?
Like I noticed the sharpening becomes less apparent the higher the bit depth. At 16 bits you can't even see it. At 8-bit it's very obvious.
Latest ver will fix it
https://github.com/Asd-g/AviSynthPlus-Scripts/blob/master/MCTD_.avsi
Stereodude
2nd October 2022, 22:12
Latest ver will fix it
https://github.com/Asd-g/AviSynthPlus-Scripts/blob/master/MCTD_.avsi
What was wrong with it and how did you fix it?
poisondeathray
2nd October 2022, 22:50
What was wrong with it and how did you fix it?
You can click on the "history" for the commits
https://github.com/Asd-g/AviSynthPlus-Scripts/commits/master/MCTD_.avsi
MCTD_.avsi: fix sharpening internal masks (high bit depth)
https://github.com/Asd-g/AviSynthPlus-Scripts/commit/50770c4732b50ba5ae7a148a486c69f12c8bd347
kedautinh12
3rd October 2022, 00:43
You can click on the "history" for the commits
https://github.com/Asd-g/AviSynthPlus-Scripts/commits/master/MCTD_.avsi
MCTD_.avsi: fix sharpening internal masks (high bit depth)
https://github.com/Asd-g/AviSynthPlus-Scripts/commit/50770c4732b50ba5ae7a148a486c69f12c8bd347
Or check changelog in script
https://github.com/Asd-g/AviSynthPlus-Scripts/blob/50770c4732b50ba5ae7a148a486c69f12c8bd347/MCTD_.avsi#L359
Stereodude
21st October 2022, 19:47
Or check changelog in script
https://github.com/Asd-g/AviSynthPlus-Scripts/blob/50770c4732b50ba5ae7a148a486c69f12c8bd347/MCTD_.avsi#L359
The directions in the latest mod 4.4 version aren't so clear to me and I admit I'm not the best at reading all the conditional statements in the script, so I may be wrong in my understanding here.
Why did you add internal multithreading to MCTD? What benefit does using prefetch internal to the filter vs. letting AVISynth+ do it after the filter with prefetch? I don't see any improvement from using it. I couldn't find a ncpu setting that gave a higher FPS than a prefetch() statement at the end of my script. Additionally, using the internal multithreading in MCTD prevents multithreading any filters in the script after MCTD (I think).
With a minimal script of a source, crop, converting to 16bits, & MCTD I got the best performance with ncpu=1 and prefetch(14). ncpu=-6 is the best value I found for the internal multithreading, but it is slightly slower.
ncpu=1 & prefetch(14):
AVSMeter 3.0.9.0 (x64), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.2 (r3661, 3.7, x86_64) (3.7.2.0)
Number of frames: 1000
Length (hh:mm:ss.ms): 00:00:41.708
Frame width: 1920
Frame height: 804
Framerate: 23.976 (24000/1001)
Colorspace: YUV420P16
Frames processed: 1000 (0 - 999)
FPS (min | max | average): 0.609 | 117646 | 14.44
Process memory usage (max): 5315 MiB
Thread count: 47
CPU usage (average): 86.7%
Time (elapsed): 00:01:09.242
ncpu=-6 (prefetch(8) before MCTD / none after):
AVSMeter 3.0.9.0 (x64), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.2 (r3661, 3.7, x86_64) (3.7.2.0)
Number of frames: 1000
Length (hh:mm:ss.ms): 00:00:41.708
Frame width: 1920
Frame height: 804
Framerate: 23.976 (24000/1001)
Colorspace: YUV420P16
Frames processed: 1000 (0 - 999)
FPS (min | max | average): 0.447 | 32.07 | 13.89
Process memory usage (max): 4514 MiB
Thread count: 87
CPU usage (average): 85.7%
Time (elapsed): 00:01:11.984
As soon as I added the neo_f3kdb processing after MCTD the gap between them widened.
ncpu=1 & prefetch(14):
AVSMeter 3.0.9.0 (x64), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.2 (r3661, 3.7, x86_64) (3.7.2.0)
Number of frames: 1000
Length (hh:mm:ss.ms): 00:00:41.708
Frame width: 1920
Frame height: 804
Framerate: 23.976 (24000/1001)
Colorspace: YUV420P10
Frames processed: 1000 (0 - 999)
FPS (min | max | average): 0.315 | 357140 | 13.96
Process memory usage (max): 5913 MiB
Thread count: 52
CPU usage (average): 86.9%
Time (elapsed): 00:01:11.631
ncpu=-6 (prefetch(8) before MCTD / none after):
AVSMeter 3.0.9.0 (x64), (c) Groucho2004, 2012-2021
AviSynth+ 3.7.2 (r3661, 3.7, x86_64) (3.7.2.0)
Number of frames: 1000
Length (hh:mm:ss.ms): 00:00:41.708
Frame width: 1920
Frame height: 804
Framerate: 23.976 (24000/1001)
Colorspace: YUV420P10
Frames processed: 1000 (0 - 999)
FPS (min | max | average): 0.380 | 27.16 | 12.89
Process memory usage (max): 4636 MiB
Thread count: 98
CPU usage (average): 71.3%
Time (elapsed): 00:01:17.590
Also, I think the directions could use some tweaks
1) Explain that the default value of 1 disables internal multithreading? (I think this is true)
2) I think the instruction should say "Do not use prefetch() after MCTD if you have enabled internal multithreading." instead of what it says now.
3) Perhaps warn that a good starting value for ncpu is not the value they had been using in their subsequent prefetch statement. I do see it says to start at -2 and decrement by 2 until they find optimal performance, but I think many people will think they if they had been using prefetch(8) they should start with ncpu=-8. I get optimal performance with ncpu=-6 and prefetch(14) respectively.
Stereodude
22nd October 2022, 04:11
You can click on the "history" for the commits
https://github.com/Asd-g/AviSynthPlus-Scripts/commits/master/MCTD_.avsi
MCTD_.avsi: fix sharpening internal masks (high bit depth)
https://github.com/Asd-g/AviSynthPlus-Scripts/commit/50770c4732b50ba5ae7a148a486c69f12c8bd347
I admit to not really understanding what mt_lut does, but I don't understand how the new exponent value that x is raised to compensates for or factors into the bit-depth or how the new exponents values are arrived at to provide an equivalent level of sharpness at each bit depth. :confused:
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.