Blue noise in dark areas is difficult to remove.

questions about practical use of Neat Video, examples of use
Post Reply
DrOmalpalli
Posts: 9
Joined: Tue Jun 23, 2020 2:39 pm

Blue noise in dark areas is difficult to remove.

Post by DrOmalpalli »

Hello,

I'm having trouble removing blue chroma noise in dark parts of the image. I first tried auto-profile, and then tried selecting just the area with the noise, but it appeared to make little difference.

I've attached 3 images: The Noise profile, the Temporal Settings and the Spatial Settings.

Any suggestions?

Thanks in advance.

Regards,
Rajnesh

Noise Profile:

Noise Profile
Noise Profile
Noise Profile.jpg (243.88 KiB) Viewed 2875 times

Temporal Settings:

Temporal Settings
Temporal Settings
Temporal.jpg (238.25 KiB) Viewed 2875 times

Spatial Settings:

Spatial Settings
Spatial Settings
Spatial.jpg (255.67 KiB) Viewed 2875 times
NVTeam
Posts: 2745
Joined: Thu Sep 01, 2005 4:12 pm
Contact:

Re: Blue noise in dark areas is difficult to remove.

Post by NVTeam »

I recommend to try preparing a noise profile using the method shown in this video tutorial. Once you build a good noise profile using that method, try additionally to increase the temporal filter radius. That may help.

Do not enable "Adapt to changing noise" if your clip shows the same noise from the beginning to the end.

Hope this helps,
Vlad
themaster
Posts: 8
Joined: Sat Jul 05, 2008 10:35 pm

Re: Blue noise in dark areas is difficult to remove.

Post by themaster »

Neat video is not really suited for this kind of noise, instead use avisynth and the script below:

AVISource("MyVideo.avi")
assumetff()
ConvertToYV16(interlaced=true)
orig=last
ev=orig.assumetff().separatefields().selecteven()
od=orig.assumetff().separatefields().selectodd()
ev
ue_chroma = UToY(ev).blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
ve_chroma = VToY(ev).blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
YToUV(ue_chroma, ve_chroma)
MergeLuma(ev)
ev_filtered=last
od
uo_chroma = UToY(od).blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
vo_chroma = VToY(od).blur(0,1.5).binomialblur(5).ttempsmooth(maxr=6,lthresh=150, strength=6).KNLMeansCL(d=3,a=8,s=2,h=6)
YToUV(uo_chroma, vo_chroma)
MergeLuma(od)
od_filtered=last
interleave(ev_filtered,od_filtered)
assumefieldbased().assumetff().weave()

Note filters required: ttempsmooth, KNLmeans, variablur
Post Reply