View Single Post
Old 11th August 2006, 09:07   #9  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Sorry for hijacking your thread Fizick, but I'm gonna be w/o internet for the next 4 days so have to get everything done quick . Some results using the noisy clip with noise variance of 25 from the rar file I posted:

tested filters:

Code:
sw-3ddct(NoiseParam=4)  <= sw-3ddct  (not an avisynth filter)

dctfun4b(12)  <= dctfun4b

tnlmeans(h=3.5,bx=1,by=1,sx=3,sy=3,ax=6,ay=6,az=2)  <= tnlmeans

frfun7(lambda=2.0,T=7.5)  <= frfun7

frfun3d(t=7.0)  <= frfun3d

fft3dfilter(sigma=3.8, bt=4, bw=16, bh=16, ow=8, oh=8, plane=0)  <= fft3dfilter

dfttest(sigma=1.87,bsize=16,osize=12,tsr=1,ssr=0,max2dblocks=3)  <= dfttest

vf=noisy.mvanalyse(pel=2,blksize=8,isb=false,idx=1,overlap=4,sharp=2,truemotion=true)
vb=noisy.mvanalyse(pel=2,blksize=8,isb=true,idx=1,overlap=4,sharp=2,truemotion=true)
vf2=noisy.mvanalyse(pel=2,blksize=8,isb=false,idx=1,delta=2,overlap=4,sharp=2,truemotion=true)
interleave(\
mvcompensate(noisy,vf2,idx=1,thSCD1=600)\
, mvcompensate(noisy,vf,idx=1,thSCD1=600)\
, noisy\
, mvcompensate(noisy,vb,idx=1,thSCD1=600))
FFT3DFilter(sigma=3.7, bt=4, bw=8, bh=8, ow=4, oh=4)
denoised=selectevery(4,2)  <= fft3dfilter+emc

dfttest(sigma=1.87,bsize=8,osize=6,tsr=2,ssr=6,max2dblocks=4)  <= dfttest+imc

vf1=noisy.mvanalyse(pel=2,blksize=8,isb=false,idx=1,overlap=4,sharp=2,truemotion=true)
vf2=noisy.mvanalyse(pel=2,blksize=8,isb=false,idx=1,delta=2,overlap=4,sharp=2,truemotion=true)
vb1=noisy.mvanalyse(pel=2,blksize=8,isb=true,idx=1,overlap=4,sharp=2,truemotion=true)
vb2=noisy.mvanalyse(pel=2,blksize=8,isb=true,idx=1,delta=2,overlap=4,sharp=2,truemotion=true)
interleave(\
mvcompensate(noisy,vf2,idx=1,thSCD1=600)\
, mvcompensate(noisy,vf1,idx=1,thSCD1=600)\
, noisy\
, mvcompensate(noisy,vb1,idx=1,thSCD1=600)\
, mvcompensate(noisy,vb2,idx=1,thSCD1=600))
dfttest(sigma=1.87,bsize=8,osize=6,ssr=0,tsr=2,max2dblocks=5)
denoised=selectevery(5,2)  <= dfttest+emc
I tested only luma denoising (chroma from source was merged into the denoised clip before computing metrics). The bold writing above indicates the name I gave to each set of settings for making the graph and listing the results. (emc = external motion compenstation, imc = internal motion compensation... external as in a separate filter and internal as in part of the filter itself).

I optimized the settings for best ssim (or at least tried to), so read what you will into the psnr results.

Code:
PSNR:  
name:                        Overall -  (Y-min,   Y-avg,   Y-max)
dfttest+emc:                 39.6374 -  (36.9429, 37.8764, 38.4442)
dfttest+imc:                 39.5612 -  (36.8100, 37.8003, 38.2116)
fft3dfilter+emc:             39.5062 -  (37.1861, 37.7453, 38.2638)
dfttest:                     38.8855 -  (36.1973, 37.1246, 37.3587)
fft3dfilter:                 38.6796 -  (35.8878, 36.9187, 37.2048)
sw-3ddct:                    38.6577 -  (36.5600, 36.8968, 37.1035)
dctfun4b:                    38.0481 -  (36.1463, 36.2872, 36.5296)
frfun7:                      37.8178 -  (35.9513, 36.0569, 36.2783)
frfun3d:                     37.7291 -  (35.8747, 35.9682, 36.1844)
tnlmeans:                    37.2052 -  (34.3804, 35.4443, 36.1713)
noisy clip:                  36.6127 -  (34.8308, 34.8518, 34.8684)

SSIM (frames 0-29):
name:                        Scaled SSIM Value
dfttest+emc:                 91.836
dfttest+imc:                 91.166
fft3dfilter+emc:             91.124
sw-3ddct:                    89.606
dfttest:                     89.263
fft3dfilter:                 88.590
tnlmeans:                    88.172
frfun7:                      86.789
dctfun4b:                    86.694
frfun3d:                     86.640
noisy clip:                  67.518

SSIM (frames 2-27):
name:                        Scaled SSIM Value
dfttest+emc:                 92.052
fft3dfilter+emc:             91.374
dfttest+imc:                 91.318
sw-3ddct:                    89.766
dfttest:                     89.435
fft3dfilter:                 88.906
tnlmeans:                    88.340
frfun7:                      86.835
dctfun4b:                    86.731
frfun3d:                     86.684
noisy clip:                  67.644
Here's a graph of the per-frame SSIM Values. I've scaled the values to the 0-100 range using the same equation that the ssim filter uses when it outputs the overall ssim value (scaled_value = 100*pow(original_value,8)).



After running the tests I noticed that lumimasking for ssim didn't really change anything on this clip (weights for all frames were > 0.999 with both lumimask=1 and 2)... so I just used the results for lumimask=0.

I'll try to add the execution times for each of the tested setting combinations...

Last edited by tritical; 21st August 2006 at 17:21.
tritical is offline   Reply With Quote