PDA

View Full Version : mvtools problem


Dreassica
28th November 2007, 21:37
I've been dabbling into mvtools and motion compensated degraining/denoising lately, as I found it does a great job whilst retaining detail very well.
But I've been troubled by 1 phenomenom that seems to re-appearevery time.
It tends to "forget" to degrain/denoise frames, always single "flashing" frames, most likely cuz neighbouring frames are not similar. Maybe I'm just stupid, and missed a simple solution to it.
Examples.

Before:
http://img118.imageshack.us/img118/9112/beforeuk3.png

Frame in question:
http://img250.imageshack.us/img250/8632/problemrg6.png

After:
http://img405.imageshack.us/img405/8264/afterka9.png

Here's script used in example:

mpeg2source("test.d2v")
trim(6,0)
Trim(0,1912-1) ++ Trim(1945+1,0)
fadein(18)
deleteframe(283)
duplicateframe(16211).duplicateframe(16211).duplicateframe(16211).duplicateframe(16211).duplicateframe(16211).duplicateframe(16211).duplicateframe(16211).duplicateframe(16246)
deleteframe(32167).deleteframe(32166).deleteframe(32165)
Trim(0,33747-1) ++ Trim(33765+1,0)
deleteframe(33801).deleteframe(33800)
duplicateframe(34496)
duplicateframe(34496)
duplicateframe(34496)
duplicateframe(34496)
crop(20,14,-20,-10)
source=last
denoised=dfttest(sigma=0.34).LRemoveDust_YV12(17,1)
backward_vec2 = MVAnalyse(denoised,isb = true, delta = 2, pel = 2,blksize=8, overlap=4, sharp=1, idx = 1)
backward_vec1 = MVAnalyse(denoised,isb = true, delta = 1, pel = 2,blksize=8, overlap=4, sharp=1, idx = 1)
forward_vec1 = MVAnalyse(denoised,isb = false, delta = 1, pel = 2,blksize=8, overlap=4, sharp=1, idx = 1)
forward_vec2 = MVAnalyse(denoised,isb = false, delta = 2, pel = 2,blksize=8, overlap=4, sharp=1, idx = 1)
MVDegrain2(source,backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=250,idx=2).MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
Deblock_QED(quant1=24, quant2=22, aOff1=2, bOff1=4, aOff2=4, bOff2=8, uv=1)
bicubicresize(640,480,0,0.4)

IanB
28th November 2007, 22:19
If the neighbours are different how can it denoise it?

The denoising works by motion comp'ing the neighbours to be the same as the current frame, then assuming the differences left are noise and nuking it.

If the frames in question are single uniform colour "flash" frames as above, I would just blur them, heavily! You could use MVSceneChange (sp?) to detect them.

Also check your IDX= usage in your script it does not seem quite right.