View Full Version : Removing chroma noise
baka1
7th June 2020, 14:26
I have a sample with heavy chroma noise from BD raw.
https://mega.nz/folder/eKg1GKCZ#5dAwrabG5aIivDJRZeb99Q (Warning! 100MB+ 'cause BD raw)
Demuxed BD with DGAVCIndex - along with dga file and log.
Avisynth's external filters section for chroma only refers to chromatic abberation - not noise. So I'm not even sure where to start to fix it.
hello_hello
7th June 2020, 20:48
I haven't downloaded the sample, but what about something like:
A = last
MergeChroma(A, A.TemporalDenoise())
Or some other filtering you can apply only to the chroma in the same way.
StainlessS
7th June 2020, 21:02
HQDN3D() and FFT3DFilter() can choose only chroma denoise.
EDIT: Both have spatial/temporal options.
manolito
7th June 2020, 22:02
Cnr2 version 2.61
johnmeyer
7th June 2020, 22:21
Cnr2 version 2.61I use this all the time. You first load the VirtualDub DLL:
loadPlugin("c:\Program Files\AviSynth 2.5\plugins\CNR\Cnr2.dll")
You then call Cnr2 from within AVISynth:
Cnr2("oxx",8,16,191,100,255,32,255,false)
I don't remember off the top of my head how I came up with the values (the numbers shown work well with VHS chroma noise). I think what I did (twenty years ago) was interactively tuned Cnr on some sample video inside of VirtualDub. I then saved the settings in VD, and opened up the file that this action creates. I think these numbers are in that file, and you just copy them the way you see here. I think there was a little more to it (I seem to remember I had to change a "0" in the VD file to "false" for AVISynth). There are quite a few places you can get information about using VD plugins inside of AVISynth.
StainlessS
7th June 2020, 22:57
I use this all the time. You first load the VirtualDub DLL
:confused:
Cnr2.dll is an avs plugin (*.vdf for Vdub).
Alzheimer's playing up again John ? :)
baka1
8th June 2020, 14:08
FFT3DFilter(sigma=10, plane=3) works the best without affecting overall quality of the image that much
johnmeyer
8th June 2020, 15:02
:confused:
Cnr2.dll is an avs plugin (*.vdf for Vdub).
Alzheimer's playing up again John ? :)Could be. :)
CNR2 started out as a VirtualDub plugin called CNR by Giles Mouchard. It is hard to find these days, but Wilbert posted its usage here:
https://forum.doom9.org/showthread.php?p=149661#post149661
Someone later migrated it to AVISynth. I obviously made the transition, but forgot that the DLL is the AVISynth version.
The rest of my advice is still useful for those of us who don't have an interactive interface for AVISynth (i.e., figure out the settings in VD and then transfer them to the AVISynth script).
StainlessS
8th June 2020, 15:25
Oh I see John, not totally doo-lally just yet then.
Dont think I have CNR under VDub, good advice on using it for tweaking settings in VDub.
johnmeyer
8th June 2020, 17:13
Dont think I have CNR under VDub, good advice on using it for tweaking settings in VDub.
StainlessS,
I sent you a PM with a link to the CNR.vdf.
John
StainlessS
8th June 2020, 17:26
Cheers John.
crystalfunky
21st June 2020, 20:17
FFT3DFilter(sigma=10, plane=3) works the best without affecting overall quality of the image that much
What do these settings mean?
Can I use those on 4K HDR stuff?
What about black & white movies?
Mounir
21st June 2020, 20:47
I feel like a robot sometimes, one of the best chroma remover scripts you'll find is this one:
You may have to tweak the params for ttempsmooth
LWLibavVideoSource(source="J:\00-Montage_video\00002.demuxed.264")
ConvertToYV16(matrix="rec709",interlaced=false)
U = UToY().blur(0,1.5).binomialblur(5).ttempsmooth(maxr=2,lthresh=80, strength=1)
V=VToY().blur(0,1.5).binomialblur(5).ttempsmooth(maxr=2,lthresh=80, strength=1)
YToUV(U,V,last)
converttoyv12(matrix="rec709",interlaced=false)
usually it look like this (for the kind of videos source i work with, vhs tapes)
LWLibavVideoSource(source="MYVIDEO")
ConverttoRGB32(matrix="rec601",interlaced=false)
LoadVirtualDubPlugin("C:\Program Files (x86)\virtualdubmod1.5\plugins\Camcorder_Color_Denoise_sse2.vdf", "CCD", 0)
CCD(10,1) #
ConvertToYV16(matrix="rec601",interlaced=false)
U = UToY().blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
V=VToY().blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
YToUV(U,V,last)
converttoyv12(matrix="rec601",interlaced=false)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.