View Full Version : Denoising Nowhere Man
Morte66
2nd February 2007, 20:06
I've just got the NTSC R1 DVDs of "Nowhere Man", which seem pretty noisy. Actually, the noise is so big and blocky that I wonder if it qualifies as "artefacts" rather than mere "noise". Here's a sample:
http://www.megaupload.com/?d=VH58SB49
I tried my usual DVD backup denoisers on this (FluxSmoothST, RemoveGrain, fft3dgpu), but they all seem to peel off the finer noise to leave really big, sharp and nasty stuff more clearly visible. They make things worse. It's especially nasty at full screen (ffdshow spline resize to 1600x1200 on sharp/contrasty LCD).
At the moment, the best thing seems to be to leave the noise alone and back off a few feet. But it would sure be nice to fix it.. Can anybody suggest an approach that would leave a less eyeball-ripping result? I'd be prepared to go with something fairly slow for this one, and to sacrifice a little resolution if necessary.
setarip_old
2nd February 2007, 20:37
Hi!
I don't know how to tell you this but, these admittedly tired old eyes see no noise - and certainly nothing "so big and blocky that I wonder if it qualifies as 'artefacts' rather than mere 'noise'."
The only thing I noticed is what looks like momentary interlacing at a couple of points of horizontal motion.
Morte66
2nd February 2007, 22:06
[Color=Blue]Hi!
I don't know how to tell you this but, these admittedly tired old eyes see no noise - and certainly nothing "so big and blocky that I wonder if it qualifies as 'artefacts' rather than mere 'noise'."
http://www.megaupload.com/?d=ITD35JWQ
That's what I've getting out of my turnkey DVD backup script with vinverse() added to take out residual combing...
#source/deinterlace
import("..\vinverse.avs")
DGDecode_mpeg2source("D:\MeGUI\NM 101 Absolute Zero\NM 101 Absolute Zero.d2v",info=3)
ColorMatrix(hints=true)
edeintted = AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
tdeintted = TDeint(edeint=edeintted,order=1)
tfm(order=1,clip2=tdeintted).tdecimate(hybrid=1)
vinverse()
#denoise and luma sharpen
fft3dgpu(bw=16, bh=16, bt=0, sigma=2, sigma2=3, sigma3=5, sigma4=8, plane=3, precision=1)
fft3dgpu(bw=16, bh=16, bt=0, sigma=0.75, plane=4, precision=1, sharpen=0.7)
#deblock
gradfun2db()
It looks worse in motion, the noise looks non-random (i.e. attention-grabbing).
Maybe I'm doing something I shouldn't, but this script has been working fine lately on other (cleaner) DVD backups.
The only thing I noticed is what looks like momentary interlacing at a couple of points of horizontal motion.
There are some interlacing nasties in the source, but I seem to have them under control.
setarip_old
2nd February 2007, 22:10
Maybe I'm doing something I shouldn'tIf the first example you posted is BEFORE your cleanup script, I'd suggest that you have nothing to "clean up" ;>}
*.mp4 guy
2nd February 2007, 22:26
The artifacts you are seeing are overcompressed, noise filled dct blocks, they look bad during motion because the encoder skiped motion vectors in moving areas because it was confused by the noise, the residual after motion-compensation hasn't been completely fixed so it looks like blocky temporal smearing. You can get rid of the blockiness, but the smearing isn't removable and most noise removal filters will only make it worse.
You could try a really slow script with heavy motion compensation, it would help a bit by removing the "sliding noise", but its probably not worth the speed hit.
Morte66
2nd February 2007, 22:28
If the first example you posted is BEFORE your cleanup script, I'd suggest that you have nothing to "clean up" ;>}
This is from the original, just deinterlaced and resized:
http://www.megaupload.com/?d=79E4F1MV
ISTM my regular backup script with sharpening (the frame linked in post #3) looks worse than the original (the frame linked here and the m2v in post #1), presumably because the sharpening has made a meal of the noise. But if I could get rid of the noise, I could presumably sharpen without the nasty side-effects.
Even if I can't sharpen it, I would still like to see less noise than there is in the original.
Pookie
3rd February 2007, 12:58
The movie has a feel like it was recorded with an HDV style camera and one of those Brevis35 style opaque spinning quartz lenses to simulate film. That said, here's a short attempt at the ol' MVdegrain/SeeSaw combo.
http://www.bestsharing.com/files/kj6AN8v217908/nmx.avi.html
Morte66
3rd February 2007, 14:14
The movie has a feel like it was recorded with an HDV style camera and one of those Brevis35 style opaque spinning quartz lenses to simulate film.
It's 1995 vintage, I think that predates HDV.
That said, here's a short attempt at the ol' MVdegrain/SeeSaw combo.
That looks... intriguing. Could you post your script?
I've been running an mocomped mvdegrain encode to HuffYUV overnight at about 2fps. I'd be interested to see how you did it, especially the SeeSaw part.
Pookie
3rd February 2007, 17:07
backward_vec2 = last.MVAnalyse(isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1)
backward_vec1 = last.MVAnalyse(isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1)
forward_vec1 = last.MVAnalyse(isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1)
forward_vec2 = last.MVAnalyse(isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1)
a=last.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=600,idx=1)
b=a.fft3dfilter(sigma=5,plane=3,degrid=1)
SeeSaw(a,b, NRlimit=5, NRlimit2=6, Sstr=1.5, Slimit=2, Spower=16, Sdamp=6, Szp=16)
Morte66
4th February 2007, 10:24
* hours of experiment, culminating in mocomped combined deblock/denoise and SeeSaw running at less than 1 fps *
It's considerably better, but it's still not what you could call good. I think I'll just sit further away for this one. I like the show, but I don't like it enough for 0.7fps.
@M4G: thanks, I guess you were right about this one not being worth the CPU.
@Pookie: thanks, that did get me somewhere, and I'll know it for the future.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.