View Full Version : New Sharpening Function from Didée -'SeeSaw'
Boulder
23rd August 2006, 08:41
You've had some luck there. The idx's are a real swamp what comes to multithreading (probably one big reason for MVTools not being MT-compliant). Did you do a binary compare?
Try encoding the whole clip and see what happens.
bkman
23rd August 2006, 08:46
Did you do a binary compare?
Just an md5sum, but I trust it ;)
Try encoding the whole clip and see what happens.
That would take way too long. Do you have a dual-core to try it on?
Boulder
23rd August 2006, 08:49
I've tried running MVTools stuff in two threads and I know it doesn't work. I asked tsp about it and already posted his response. It seems I'm just banging my head against the wall here but to save Didée and Fizick (and others as well) a few bug reports, I still say "don't use multithreading for any MVTools-related thingies".
bkman
23rd August 2006, 08:51
Maybe you should just say: Use with caution! :p
shaolin95
23rd August 2006, 19:28
Levels; Input 0-235, Output 0-255
I was playing with that a few days ago but doesnt it creat blooming for you? I also saw some defaul Didee setups there.
Jeremy Duncan
23rd August 2006, 19:44
I use Levels like that because it helps. I know that it won't work for every monitor, but it gives mine that extra "Pep".
I didn't understand what you said about Dideé ?
Say again, please.
shaolin95
23rd August 2006, 19:55
If you look inside the LEVELS option where it says MODE: there are some named after Didee.
Jeremy Duncan
23rd August 2006, 20:01
Yeah, I see it.
Didée
23rd August 2006, 20:21
Oh, you're talking about those modes for levels in ffdshow?
Never mind, don't use them. Seems that Milan misinterpreted(?) the LUT expressions from within those YLevelsX() functions, because:
In ffdshow, YLevelsG/S/C do the exact opposite of what I intended them to do ...
shaolin95
23rd August 2006, 23:51
Thanks Didee! BTW, since I rarely have the chance to "talk" to you, let me say a big THANKS! You are a freaking Genius not to mention the reason I cant sleep due to my addiction of tweaking Seesaw, Limited Sharpen etc :-)
So, let me ask you about levels, do you think I should input 16-235 and output 0-255 or is that better left untouched for real time dvd playback? Same goes for colormatrix, do I need it for dvd playback?
Sorry to bother :-)
foxyshadis
24th August 2006, 00:45
Colormatrix (used properly) can't hurt, it can only help; as long as the d2v is passed in it won't accidentally butcher your colors.
Use the levels if you need to - if it's too grey, usually, or rarely in reverse if it's blown out. It depends on your video input and output more than anything.
Use HDRAGC if you want blooming/gain-corection/etc, or the simpler Bloom filter for just that. Crowbarring levels into doing it is fast but low-quality, blows out all the whites and blacks.
frednerk33
24th August 2006, 12:23
http://forum.doom9.org/showthread.php?p=866565#post866565
MT("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 )
SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )",3)
This one can use MT. It goes from 3fps not using MT, to 14fps using MT.
Er, please help me understand, isn't there a line or 2 missing here ? eg in relation to
a = last.MVDegrain2( backward_vec1, forward_vec1, backward_vec2, forward_vec2, thSAD=400, idx=1 )
b = a.DeGrainMedian( mode=1 )
SeeSaw( a, b, NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )
specifcally, something which uses the stuff produced by the MVAnalyse's ? (ie what is using the vectors and giving SeeSaw the 2 clips ?)
Jeremy Duncan
24th August 2006, 12:58
MT("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 )
SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )",3)
This one can use MT. It goes from 3fps not using MT, to 14fps using MT.
Er, please help me understand, isn't there a line or 2 missing here ? eg in relation to
a = last.MVDegrain2( backward_vec1, forward_vec1, backward_vec2, forward_vec2, thSAD=400, idx=1 )
b = a.DeGrainMedian( mode=1 )
SeeSaw( a, b, NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )
specifcally, something which uses the stuff produced by the MVAnalyse's ? (ie what is using the vectors and giving SeeSaw the 2 clips ?)
Your right.
Here's the full code.
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=400, idx=1 )
b = a.DeGrainMedian( mode=1 )
SeeSaw( a, b, NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )
You can put this as well.
SetMTmode(2,2)
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=400, idx=1 )
b = a.DeGrainMedian( mode=1 )
SeeSaw( a, b, NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40 )
It works, but is no faster.
Boulder said to leave out the a clip. I wasn't sure what that meant, exactly. So I tried that quoted script.
Boulder
24th August 2006, 13:05
I don't understand why you denoise both clips..the a-clip is supposed to be the untouched one and b-clip the denoised. Oh well, each one to his choice :)
I told you to leave out the a-clip from the MT section because MVTools still isn't multithread friendly. You are just asking for trouble sooner or later if you use SetMTMode or MT with MVTools.
frednerk33
24th August 2006, 13:14
I don't understand why you denoise both clips..the a-clip is supposed to be the untouched one and b-clip the denoised. Oh well, each one to his choice :)
Good question... Pookie must have had a reason which I hope can be subject to elucidation :) Original Pookie source: http://forum.doom9.org/showthread.php?p=862199#post862199
Boulder
24th August 2006, 13:20
Hmm..the amount of grain must have been quite excessive. I've never had to use MVDegrain2 on any other material than analog captures :D
frednerk33
24th August 2006, 13:31
Well, yes, the sciipt came from
http://forum.doom9.org/showthread.php?p=865865#post865865 which dealt with significantly noisy sources with apparently great results... would that explain the denoising of both clips ? Visual results on http://forum.doom9.org/showthread.php?p=865853#post865853
fight2win
24th August 2006, 16:20
can this filter be used in megui x264 encoding, or is it just for xvid, also, should limited sharpen be also used with seesaw, or one is enough???
Boulder
24th August 2006, 17:26
It can be used with any encode.
fight2win
24th August 2006, 21:59
here is my script, can someone please tell me how to modify this script in order to use sharpening/detaling:
DGDecode_mpeg2source("E:\CHRONICLES_OF_RIDDICK\VTS_01_1.d2v",info=3)
ColorMatrix(hints=true)
#blank deinterlace line
crop( 0, 60, 0, -64)
LanczosResize(720,288) # Lanczos (Sharp)
#denoise
Pookie
25th August 2006, 01:14
Good question... Pookie must have had a reason which I hope can be subject to elucidation :) Original Pookie source: http://forum.doom9.org/showthread.php?p=862199#post862199
It is the source that dictates your script settings. On very grainy sources, you might have to hit your video with a one-two punch --> filter the lows with one degrainer, filter the highs with another (or call the same filter twice with different settings to denoise the high and low frequencies). In this case, I liked the visual combination of MVdegrain and DegrainMedian processed through SeeSaw. Normally, two denoisers on a source can result in a blurry or oversmoothed target. The thing I like most about SeeSaw is the ability to retain sharpness and stability despite turning up the denoiser strength (within reason :p ).
You can see below that adding DegrainMedian(mode=1) took care of the high frequency artifacts that MVdegrain alone wasn't processing.
Your source might not need more than one degrainer, in which case you can use the "traditional" a=last and b=a.yourdegrainer() . If you like the end result, that's all that matters. :D
How about we use the same 5 second clip to have a point of reference - 20MB Mpeg2 - 23.976 fps - Big, crunchy noise with chroma grain.
http://www.bigupload.com/d=009B43FB
alternate link(rapidshare is faster)
http://rapidshare.de/files/30651466/grainy.zip.html
Here's MVdegrain on the Left. MVdegrain PLUS DegrainMedian(mode=1) on the right. Looks like chroma and high frequency noise is being filtered.
Frame 54
http://fileserver2.jpghosting.com/images/tn_54_77560ec9439c9aee55e27a7119086b12.png (http://fileserver2.jpghosting.com/images/54_77560ec9439c9aee55e27a7119086b12.png)
frednerk33
26th August 2006, 07:02
Thanks Pookie. Took your lead and tried to compare various combinations of filters with SeeSaw, on a bit of your grainy source clip.
Poor test script in http://users.tpg.com.au/walshdcw/z-seesaw.avs Tests:
1. MVDegrain2+DeGrainMedian(mode=1)
2. MVDegrain2+FFT3DFilter(sigma=3, plane=4, bt=3, sharpen=0, interlaced=false)
3. MVDegrain2+RemoveGrain(mode=17)
4. MVDegrain2+FFT3DFilter(sigma=3.5, plane=4, bt=3, sharpen=0, interlaced=false)
5. MVDegrain2+Convolution3D(0,32,128,32,128,10,0)
6. MVDegrain2+Convolution3D(1,32,128,32,128,10,0)
7. Convolution3D(0,32,128,32,128,10,0)
8. Convolution3D(1,32,128,32,128,10,0)
Results (9.6Mb .mpv) in http://users.tpg.com.au/walshdcw/z-seesaw.mpv - I'm not too sure I'm comfortable with any of these results (look at the sky)... any more suggestions for heavy noise removal & SeeSaw (usually analogue sources) ? Particuarly as shown in incredible snaps per http://forum.doom9.org/showthread.php?p=865849#post865849 Unfussed too much by FPS (or Didee type SPF :) ) processing time (want to DVD-ize family PAL-VHS of kids growing up).
References:
Original thread & pics (is "Neat Video" worth the money ?) http://forum.doom9.org/showthread.php?p=865853#post865853
Method referred to here (Noisy Witness) http://forum.doom9.org/showthread.php?p=865865#post865865
Pookie test here (New Sharpening Function from Didée -'SeeSaw') http://forum.doom9.org/showthread.php?p=867628#post867628
PS, any new news on halo removers for strong analog capture halos ? eg updates to, or daughters/sons of, dehalo_alpha
Jeremy Duncan
27th August 2006, 16:43
here is my script, can someone please tell me how to modify this script in order to use sharpening/detaling:
DGDecode_mpeg2source("E:\CHRONICLES_OF_RIDDICK\VTS_01_1.d2v",info=3)
ColorMatrix(hints=true)
#blank deinterlace line
crop( 0, 60, 0, -64)
LanczosResize(720,288) # Lanczos (Sharp)
#denoise
I don't know. I don't encode, I only use realtime.
shaolin95
27th August 2006, 19:06
I don't know. I don't encode, I only use realtime.
Jeremy your latest scripts are very nice. Much more detailed than mine and with less moire and artifacts. Not sure how you do it since your strenght is kept mostly at 1.0 or 1.4 so obvi ously you know something I dont. Anyway, the only problem is a bit too much noise so I took the median denoiser and moved it to the last step of the script after seesaw and it seems to be a slightly cleaner without any compromises. Are you doing any luma sharpen when resizing?
Regards
Jeremy Duncan
27th August 2006, 19:09
No Luma Sharpening. Please post the script your talking about.
To lower the noise. Set these lower. SdampHi=10, Szp=10.
You'll lose resolution though, as this is as low as they could go while keeping the detail in the picture.
shaolin95
27th August 2006, 20:09
I am using this one:
MT("a = last
b = a.SPresso(limit=0, limitC=4, bias=0, biasC=40, RGmode=1, RGmodeC=17)
SeeSaw(a, b, NRlimit=2, NRlimit2=1, Sstr=1.4, Slimit=16, Spower=4, Sdamplo=6, SdampHi=15, Szp=16, bias=50, sootheT=1)
DeGrainMedian(limitY=0,limitUV=4,mode=1)",3)
I am very happy how it looks so the noise is not as bad as I said in my previous post. I dont want to lose resolution in any case.
Jeremy Duncan
27th August 2006, 20:20
I've updated the script I posted for SeeSaw.
Have a look. Link (http://forum.doom9.org/showthread.php?t=115144)
The one you've just posted isn't as effective.
Jeremy Duncan
27th August 2006, 20:40
Setting to SdampHi=10, Szp=10. You'll lose no resolution ,but the noise will be much less.
Setting SdampHi, Szp, lower than this though, and you will lose resolution.
shaolin95
28th August 2006, 02:59
I somehow like the older ones better at least with my display. By using the denoiser at the end and lowering my luma sharp I finally got the desired image.
I wish I understand all those limit, rgmode, etc that you are tweaking.
turstar
31st August 2006, 17:49
ERROR ???
import("C:\Program Files\GordianKnot\AviSynthPlugins\seesaw.avs")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\removegrain.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\repair.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\ssetools.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\masktools.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\mt_masktools.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\undot.dll")
LoadPlugin("C:\PROGRA~1\GORDIA~1\AviSynthPlugins\Convolution3d.dll")
mpeg2source("E:\NEW\VIDEO_TS\matrix 1.d2v")
crop(0,80,718,416)
LanczosResize(720,288)
undot()
Convolution3d("moviehq")
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16)
ERROR ????
http://img435.imageshack.us/img435/8875/riprd4.jpg
Boulder
31st August 2006, 18:58
You need to specify a (and b) in your script. See the scripts other have posted here.
Jeremy Duncan
9th September 2006, 22:37
Here's a walkthrough guide for SeeSaw.
Link. (http://forum.doom9.org/showthread.php?t=115727)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.