Log in

View Full Version : New Sharpening Function from Didée -'SeeSaw'


Pages : 1 2 3 4 5 6 7 8 9 10 11 [12] 13

Beak
10th October 2010, 03:29
Thanks Hartford,

I am working with 1080p and quite a noisy source.

6 of 8 cores are working but still 3 frames per second.

Never thought I would run into horsepower problems. Results on clips are very very good though but 32 hour encodes are no fun.

lych_necross
10th October 2010, 07:16
If I had to guess at your speed problem, it would be fft3dfilter. You could try replacing it with FFT3dGPU. Might help.

Beak
10th October 2010, 13:01
Thanks. I have tried FFT3DGPU in the past and it crashes MeGui consistently. What I did was read more about the parameters. I was using a "best quality" suggestion from the fft3dfilter webpage.

The bt-5 seems to be overkill in this case. I am getting 6.5 frames per second now with bt-3. Still a bit of a wait though, but much better. :)

This might not be a source that responds to any sharpening. Very noisy. These filters are magical but GiGo probably applies still.

I can't get over what SeeSaw and fft3d filter did for my resized version of Aliens. Incredible.

hartford
13th October 2010, 03:56
I don't know about this; perhaps I'm confused (most likely), but there was a problem with respect to "Index."

The "index" problem (I'm vague on this) was between version 1
and version 2 of mt_masktools.

I'm wondering if there is a further problem.

Of course, I could be in left field about this.

Someone please slap me :)

talen9
13th October 2010, 10:21
I don't know about this; perhaps I'm confused (most likely), but there was a problem with respect to "Index."

The "index" problem (I'm vague on this) was between version 1
and version 2 of mt_masktools.

I think you had in mind MVTools vs MVTools2, *not* MaskTools ;)

Nephilis
18th October 2010, 17:08
if you had any suggestions for the "general purpose non linear pulse multi pass band pass and temporal stabilized sub sharpener", I would appreciate...

How about motion compensated temporal limited sharpener (not spatial) that have subpixel precision with more complex edge enhencing feature ?

And @Didée

Can you explain the "crystality sharpen" principle a little bit ?

Thanx in advance..

Didée
18th October 2010, 17:57
What about the explanation in post#18 (http://forum.doom9.org/showthread.php?p=760935#post760935)? Not good enough?

Also, useful basic building blocks for {motion compensated blabla sharpening blable enhancing blablu} are already out there, too -- see e.g. here (http://forum.doom9.org/showthread.php?t=153170).


Problem is, the more "advanced" or "complex" the sharpening routines are, the more specific you have to drill the method to fit the particularities of the actual source. And that's why I've little motivation to build a specific function for that. There's not much point in making a function offering twenty different "modes", with 20 different sub-modes for each single mode, and some twenty different tweaking parameters for each of them.

Really, for me it is faster to look closely at a source video, then build a fitting script from scratch and from the guts. Much easier to see what needs to be done and then just do it, instead of wondering about a bazillion of parameters of a several-thousand-lines function.

Bi11
18th October 2010, 18:51
SeeSaw is a great sharpening function. It's much more effective than LSFmod at enhancing detail (at the cost of enhancing existing halos as well, of course). Keep up the good scripting! :)
:thanks:

Didée
18th October 2010, 19:19
There's always the option to create a de-halo'ed clip, and feed that as "denoised" clip into SeeSaw. In that case, preferably with low/zero bias.
Something that can be adapted for many sources:

mb2=orig.minblur(2)
mb2.mt_edge(prewitt).mt_expand
last.mt_edge(prewitt).mt_expand
mt_merge(orig,mb2,last)

Amount of extension/dilation must be figured acc. to source characteristics. (Yet another case where "fiddling manually" is much easier than controlling through half a dozen parameters.)

dansrfe
18th October 2010, 21:27
3 questions:

1. where is seesaw in the above?^

2. What is the difference between the following: edge enhancement, haloing, and having mosquito noise around people and objects?

3. Is it ok to feed b = a.dehalo_alpha().fft3dfilter([params]) to seesaw in such a combination? What is the general things I should be looking at feeding into seesaw as the "denoised" clip? What combinations of post-processing works best when fed into seesaw for a flat, yet clear source with minimal haloing.

Didée
19th October 2010, 12:33
What is the difference between the following: (1)edge enhancement, (2)haloing, and (3)having mosquito noise around people and objects?
That's easy.

(1) is basically just any sort of sharpening. Can be a plain sharpener, can be more sphisticated like using edge masking to restrict to those areas ... but basically, it's just sharpening. A common method is to apply unsharp masking, then call it "edge enhancement" because it sounds better.

(2) is what you get when (1) is overdone.

(3) is what a DCT-based compressor produces when it's faced with too much of (1) or (2).


where is seesaw in the above?
It would come after that. This was a suggestion for a basic strategy to avoid halo creation, by using such filtering for the "denoised" clip of SeeSaw.
(And there's a certain reason for that, see below.)


Is it ok to feed b = a.dehalo_alpha().fft3dfilter([params]) to seesaw in such a combination?
Basically, that's a perfectly valid strategy. However, you have to be careful with smoothing. SeeSaw uses per default a medianfilter-based denoiser, and for a reason. The same reason why I suggested a medianfilter-based halo removal. Point is, when any sort of blurry smoothing is used, then the preprocessed clip may offer more "sharpening headroom" (e.g. for edge pixels) than the available headroom in the original source. In effect, this again may lead to halo creation. Appropriate usage of medianfiltering can mostly avoid this issue.

(Some diagrams would be good to demonstrate this behaviour, but I'm in the office now and don't have the time.)

Boulotaur2024
20th October 2010, 12:33
SeeSaw is a great sharpening function. It's much more effective than LSFmod at enhancing detail (at the cost of enhancing existing halos as well, of course). Keep up the good scripting! :)
:thanks:I thought they were very close scripts in the way they work internally, isn't LSFMod a sort of mixture between SeeSaw and LSF ? (I thought so anyway). Well then I guess I'll try to see (saw) how the former performs on the source I'm working on

Didée
29th October 2010, 17:23
The SeeSaw script(s) that i have locally here do only contain function(..) {...} statements, nothing else. It is virtually impossible that presence of this *.avsi function in your plugins directory should change anything at all ... simply because there is no "self-active" code in it.

Check your SeeSaw script if it contains any additional code. In case of doubt, grab the script and upload it, I'll check.

BTW, "who" is detecting "1080p encodings as interlaced" ?

Dogway
29th October 2010, 17:32
Sorry Didée, my bad, I forgot to delete mt_masktools-26.dll (I use 2.5.7) which was causing it. It has been a day of file fiddling and testing so...
I just discovered Seesaw and I like it a lot although the first tests I did the other day showed some esporadic noise, eventually cleaned with the removegrain thing people do... but still.

cybersharky
28th December 2010, 14:29
Sorry to resurrect an old thread, but as far as I can see my problem is SeeSaw or plugins it uses related.

Encoding with x264, the script stops working, after many attempts the script stops responding. Once I saw an x264 crash with mt_masktools.dll as the faulting module. If I edit out the SeeSaw part of the script the encode completes.

Avisynth: is MT version 2.5.8.5
masktools: is version 2.0.46
RemoveGrain v1.0: (http://home.arcor.de/kassandro/RemoveGrain/RemoveGrain.rar)
SeeSaw: (http://avisynth.org/mediawiki/upload/e/e1/SeeSaw.avs)
x264 is Revision 1834

SetMemoryMax(512)
SetMTMode(2,0)
LoadPlugin("G:\megui\tools\avisynth_plugin\mt_masktools-25.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\mvtools2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\gradfun2db.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\degrainmedian.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\VagueDenoiser.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RemoveGrainSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RepairSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RSharpenSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\UnDot.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\AddGrainC.dll")
Import("G:\megui\tools\avisynth_plugin\GradFunkMirror.avs")
Import("G:\megui\tools\avisynth_plugin\GrainFactory3.avsi")
Import("G:\megui\tools\avisynth_plugin\SeeSaw.avs")
LoadPlugin("G:\megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("C:\Users\Gary\Documents\DVDFab\MainMovie\STARGATE_SG1_S1_D1_E1\VIDEO_TS\VTS_01_1.d2v", info=3)
LoadPlugin("G:\megui\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, threads=0)
#deinterlace

crop( 4, 4, -4, -4)

LanczosResize(704,384) # Lanczos (Sharp)
#denoise
a= last
b=a.degrainmedian(limitY=3, limitUV=5,mode=0).VagueDenoiser(threshold=1.2, method=1, nsteps=6, chromaT=0.8)
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16, sootheS=20)
Undot()
GradFunkMirror()
Grainfactory3(1,1,1)
__film = last
__t0 = __film.trim(0, 3600)
__t1 = __film.trim(55600, 59000)
__t2 = __film.trim(101196, 104825)
__t3 = __film.trim(119137, 123169)
__t0 ++ __t1 ++ __t2 ++ __t3

Didée
28th December 2010, 14:48
mpeg2source usually works not with multithreading. At the beginning, replace with SetMTMode(5,0), and place a SetMTMode(2) *after* mpeg2source.

cybersharky
28th December 2010, 15:16
mpeg2source usually works not with multithreading. At the beginning, replace with SetMTMode(5,0), and place a SetMTMode(2) *after* mpeg2source.

Tried that, the encode hung at frame 3460 :confused:

Didée
28th December 2010, 15:20
Update: No, that's not the real culprit. Tried an encode with [4 threads] and [your SeeSaw line] -> x264, and indeed, the process stalled soon.

However, rendering in Vdub is fine. Therefore I guess it's somehow related to the readahead that x264 is doing, and Avisynth-MT not liking that.

Well, We all (should) know that Avisynth-MT is not to be considered "stable". Basically it's a hack - full of enthusiasm, but still a hack. Sad but true. :(


Edit: Update#2: Ouch, even an Vdub analyse pass stalled after ~60% (several test runs, this one failed). A pity that it doesn't crash - without trace it's hard to tell where it breaks apart.

cybersharky
28th December 2010, 15:52
Thank you for your help and reply Didée. I've just finished an encode without SetMTMode.

Didée
28th December 2010, 16:33
First enlightment: "Oh, we're not using VfW, we must add "Distributor()" at the end of the script!"

Added Distributor() at the end of the script. Result: x264 encoding stalled.


Okay ... went with Goethe: "And if you're not willing, then I'll use force!"

Added to the end of the script:
.
.
.
SetMTMode(5)
AssumeFPS(last,last,true)

x264 encode finished successfully.

cybersharky
28th December 2010, 19:06
Thanks for the update Didée.

But, now for me that makes the script slower than without SetMTMode. Without MT I averaged ~15fps, now it's sitting around ~13fps.

Didée
29th December 2010, 06:11
Yes, indeed.

Try like this:
SetMTMode(5,6) # on a Quadcore + HT
mpeg2source("vts_01_1.d2v")
setmtmode(2)
a= last
b=a.degrainmedian(limitY=3, limitUV=5,mode=0).VagueDenoiser(threshold=1.2, method=1, nsteps=6, chromaT=0.8)

b=assumefps(b,true) # #### knock1 ####
setmtmode(5)
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16, sootheS=20)
SetMTMode(2) # #### knock2 ####
RemoveGrain(0) # #### knock2 ####
return(last)
Noise Filtering MT'ed, SeeSaw singlethreaded. This mix of SetMTMode(5) and (2) shows interesting behaviour.

Normal 1thread script: 23.5 fps

Without knock_ lines: 23.5 fps
Using only knock2: 41.0 fps
Using only knock1: 80 fps

Both knocks, as posted above: 95.0 fps


The Wonderland of Multithreading.

dansrfe
29th December 2010, 06:52
Can you explain why though? That's the interesting part, since RemoveGrain(0) doesn't do anything and the different setmtmode references change caching/threading parameters I would guess.

cybersharky
29th December 2010, 09:22
Hi Didée,

I've tried to adjust my script to match yours as best I can, but now I get a crash.

Faulting application name: x264.exe, version: 0.0.0.0, time stamp: 0x4d08623f
Faulting module name: mt_masktools-25.dll, version: 2.0.46.0, time stamp: 0x4ce94539
Exception code: 0xc0000005
Fault offset: 0x000a16e1
Faulting process id: 0x1730
Faulting application start time: 0x01cba72559993b9a
Faulting application path: G:\megui\tools\x264\x264.exe
Faulting module path: G:\megui\tools\avisynth_plugin\mt_masktools-25.dll
Report Id: 2806b45c-1319-11e0-80bc-6cf0490e56c4

SetMemoryMax(512)
SetMTMode(5,3) # changed to 3 processor is Q9300
LoadPlugin("G:\megui\tools\avisynth_plugin\mt_masktools-25.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\mvtools2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\gradfun2db.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\degrainmedian.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\VagueDenoiser.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RemoveGrainSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RepairSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\RSharpenSSE2.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\UnDot.dll")
LoadPlugin("G:\megui\tools\avisynth_plugin\AddGrainC.dll")
Import("G:\megui\tools\avisynth_plugin\GradFunkMirror.avs")
Import("G:\megui\tools\avisynth_plugin\GrainFactory3.avsi")
Import("G:\megui\tools\avisynth_plugin\SeeSaw.avs")
LoadPlugin("G:\megui\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("C:\Users\Gary\Documents\DVDFab\MainMovie\STARGATE_SG1_S1_D1_E1\VIDEO_TS\VTS_01_1.d2v", info=3)
SetMTMode(2)
LoadPlugin("G:\megui\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, threads=0)
__film = last
__t0 = __film.trim(0, 3600)
__t1 = __film.trim(55600, 59000)
__t2 = __film.trim(101196, 104825)
__t3 = __film.trim(119137, 123169)
__t0 ++ __t1 ++ __t2 ++ __t3
#deinterlace

crop( 4, 4, -4, -4)

LanczosResize(704,384) # Lanczos (Sharp)
#denoise
a= last
b=a.degrainmedian(mode=2).VagueDenoiser(threshold=0.8, method=1, nsteps=6, chromaT=0.8)
b=assumefps(b,true) # #### knock1 ####
setMTmode(5)
SeeSaw(a, b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16, sootheS=20)
SetMTMode(2) # #### knock2 ####
RemoveGrain(0) # #### knock2 ####
return(last)
#Undot()
#GradFunkMirror()
#Grainfactory3(1,1,1)

Gavino
29th December 2010, 10:56
SetMTMode(5,6) # on a Quadcore + HT
mpeg2source("vts_01_1.d2v")
setmtmode(2)
a= last
b=a.degrainmedian(limitY=3, limitUV=5,mode=0).VagueDenoiser(threshold=1.2, method=1, nsteps=6, chromaT=0.8)

b=assumefps(b,true) # #### knock1 ####
...
...
Without knock_ lines: 23.5 fps
Using only knock1: 80 fps
That line means b=assumefps(last,b,true).
Since last is a, the degrainmedian step is missed!

Didée
29th December 2010, 11:40
Aayyy ... yes. Just a few minutes ago I saw that, too. 'T was too deep in the night, it seems. And I was surprised how fast the MT script was running!:rolleyes::D - In fact, when corrected to b=assumefps(b,b,true), the speed is ~45 fps. (Compared to ~23.5 singlethreaded [turbo mode normalized: ~19.5].)

Still doesn't explain why the script crashes for cybersharky -- for me, the exactly-same script encodes to x264 without any problem. (Using Hybrid, though, not MeGUI.)

cybersharky
29th December 2010, 16:57
Thanks again Didée,

I made that correction and for the first time I got a MT script with SeeSaw to complete. :thanks:

I don't know where the crash came from earlier.

Tanbheer
19th October 2011, 18:49
Thanks Didee for this wonderful script

meshaun
8th January 2012, 12:21
Hi, am new with this Seesaw. How to use this script in MeGUI and how about if I use it with a Clear HD video? I mean, I rip my blurays using MeGUI and If I use this filter too, will it improve and enhance the quality or maybe kill it?

3rt4n
28th February 2012, 01:57
Hello Didée, can u pls help me? (sorry my bad english) This is my script, is this true? Or somewhere, am i doing wrong?

LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools-25.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\RemoveGrain.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\degrainmedian.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\repair.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools2.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\VagueDenoiser.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MT.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\fft3dgpu.dll")


Import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")

SetMTMode(3,4)
DirectShowSource("C:\Documents and Settings\bLack\Desktop\Fast Five 2011\Fast Five Sample.mkv",fps=23.976, audio=true)
crop( 4, 4, -4, -4)
setmtmode(1)
a = last
b=a.fft3dgpu(precision=0,mode=1,sharpen=1,sigma=2,bt=2,bh=64,bw=64,plane=1)

b=assumefps(b,true) # #### knock1 ####
SetMTMode(4)
SeeSaw(a,b, NRlimit=6, NRlimit2=7, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16)
SetMTMode(2) # #### knock2 ####
LimitedSharpenFaster(ss_x=1.0, ss_y=1.0, Smode=3, strength=50, overshoot=1)
LanczosResize(1280,544)

Thanks for any help.

Gavino
28th February 2012, 02:10
...
b=assumefps(b,true) # #### knock1 ####
...
As noted above (posts 575 and 576), this should be
b=assumefps(b,b,true)

3rt4n
28th February 2012, 07:17
As noted above (posts 575 and 576), this should be
b=assumefps(b,b,true)

Thank you.

3rt4n
28th February 2012, 09:27
Yes, indeed.

Try like this:
SetMTMode(5,6) # on a Quadcore + HT
mpeg2source("vts_01_1.d2v")
setmtmode(2)
a= last
b=a.degrainmedian(limitY=3, limitUV=5,mode=0).VagueDenoiser(threshold=1.2, method=1, nsteps=6, chromaT=0.8)

b=assumefps(b,b,true) # #### knock1 ####
setmtmode(5)
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16, sootheS=20)
SetMTMode(2) # #### knock2 ####
RemoveGrain(0) # #### knock2 ####
return(last)
Noise Filtering MT'ed, SeeSaw singlethreaded. This mix of SetMTMode(5) and (2) shows interesting behaviour.

Normal 1thread script: 23.5 fps

Without knock_ lines: 23.5 fps
Using only knock2: 41.0 fps
Using only knock1: 80 fps

Both knocks, as posted above: 95.0 fps


The Wonderland of Multithreading.

Hello again, i'm trying this script (Both knocks) but why i got only 14 fps? (sorry my bad eng)

Didée
28th February 2012, 10:19
I have no clue, and the crystal ball is at the garage for maintenance.

What's your CPU, and what's the resolution of your video? It's a long way from NTSC 720x480 to HD1920x1080.

3rt4n
28th February 2012, 10:56
Thank you for quick reply. CPU: AMD Phenom(tm) II X3 710 2.61 GHZ, my video resolution is 1280x544.

Didée
28th February 2012, 11:10
Maybe that is what your CPU can do?

Another important point you didn't tell: is that speed only for script preview, or is that together with encoding? If so, which encoder and which settings?

Which version of Avisynth(MT) are you using? 2.5.7, or 2.5.8, or 2.6, ....

Also, if you delete *all* of the SetMTmode lines, what speed do you get then?

3rt4n
28th February 2012, 11:30
Thanks Didée, i think, i solved my problem with your instructions.

baunduley
31st October 2012, 14:09
i have a clip which is noisy and lack of detail. can seesaw help me out? then how should i tweak it? please show me the path, then i'll be able to check it for myself

FLauBerT
26th December 2012, 11:06
Hello, first of all my english is not very good :) SeeSaw also having an error. SetMTMode using, but I will not come on top of 25% CPU usage. SetMTMode (2,4) and SetMTMode (threads = 4) forms the CPU places. I use the XviD encoder. MT () When using the form no problem, but between 75-80% of the processor again. LimitedSharpenFaster and SetMTMode not a problem at all. Have 100% CPU usage. How to encode with Seesaw should I do? Thanks in advance.

Didée
26th December 2012, 16:08
There is no such error in SeeSaw. 25% sounds like single-threaded. I guess that your are not correctly setting the SetMTmode. Remember you must set SetMTmode before the source filter. And with mode 5 (some say 3), because most source filters do not like to be multithreaded themselves. So you have the general structure

SetMTmode(5,4) # Set up MT to establish 4 threads, but with mode 5 (using only 1 thread) because of the source-filter that comes later
SetMemoryMax(666)

LoadPlugin()
LoadPlugin() # etc.

XyzSource(sourcefile)

SetMTmode(2) # Now that the source has been loaded, switch to mode 2 (use all threads)
Filter()
Filter() # etc.
Return(last)
In other words: If the first "SetMTmode()" in the script comes only after the source filter, then multithreading is NOT activated. The number-of-threads must be initiated before any kind of video object is created.


Quick test on a 720x576 mpeg2 file (10333 frames). SeeSaw with standard parameters. CPU is i7-860 (quadcore/HT)

1 thread 3:07 ( 55.3 fps) 3:07 ( 55.3 fps)

setmtmode() MT("")
2 threads: 1:51 ( 93.1 fps) 1:40 (103.3 fps)
4 threads: 1:10 (147.6 fps) 1:19 (130.8 fps)
6 threads: 0:59 (175.1 fps) 1:35 (108.8 fps)
8 threads: 0:54 (191.4 fps) 2:03 ( 84.0 fps)
(Yes, MT("") with more than 4 threads is becoming slower again. No mistake. Overhead because of spatial overlapping?)

FLauBerT
9th January 2013, 23:49
Thank you for your answers and explanatory depiction. SeeSaw also now getting more effective results. However LimitedSharpenFaster always my favorite. Thank you again. :)

hnn
3rd June 2017, 00:14
Hi, I have tried the new version of masktools and there is a problem

Evaluate: Unhandled C++ exception!

(SeeSaw.avs, line 128)

(SeeSaw.avs, line 80)

hello_hello
3rd June 2017, 05:39
Hi, I have tried the new version of masktools and there is a problem

Evaluate: Unhandled C++ exception!

(SeeSaw.avs, line 128)

(SeeSaw.avs, line 80)

I don't use SeeSaw much but I tried it and got the same error (Avisynth 2.6.0.6 and XP). I tried a few different versions of pinterf's masktools2 and it's the same for all of them (the older MaskTools2 is fine), so I thought I'd add a link to your post to the masktools2 thread.

https://forum.doom9.org/showthread.php?p=1808558#post1808558

manolito
3rd June 2017, 08:54
SeeSaw requires the old MaskTools 1.5.8. The newer MaskTools v.2 can peacefully coexist with the old version, because Manao renamed all functions to have the "mt_" prefix. From the v.2 readme:
To make the transition to the v2 easier, I renamed all the functions, which will allow the use of both old and new MaskTools dlls.

So just put the old masktools.dll into your AviSynth\plugins folder and be happy...


Cheers
manolito

Groucho2004
3rd June 2017, 09:37
SeeSaw requires the old MaskTools 1.5.8.The version of SeeSaw I took from here (http://avisynth.nl/index.php/SeeSaw) works just fine with masktools2 and RGTools (latest versions from tp7). It does however throw the exceptions mentioned above with pinterf's masktools2.

real.finder
3rd June 2017, 11:05
The version of SeeSaw I took from here (http://avisynth.nl/index.php/SeeSaw) works just fine with masktools2 and RGTools (latest versions from tp7). It does however throw the exceptions mentioned above with pinterf's masktools2.

yes, there are something in


(sootheT==0) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?", chroma="ignore")


it's chroma="ignore", If I remove it work

hello_hello
3rd June 2017, 12:06
SeeSaw requires the old MaskTools 1.5.8. The newer MaskTools v.2 can peacefully coexist with the old version, because Manao renamed all functions to have the "mt_" prefix. From the v.2 readme:

If it required MaskTools, wouldn't that mean SeeSaw would fail to work without it in the plugins folder, rather than cause an exception in MaskTools2?

Mind you I can't find a version of SeeSaw for the original MaskTools, although I'll admit I didn't look too hard (Edit. I found a copy here (https://forum.doom9.org/showthread.php?p=915700#post915700)).

The version here specifies MaskTools2. http://avisynth.nl/index.php/SeeSaw

Reel.Deel
3rd June 2017, 14:57
yes, there are something in


(sootheT==0) ? last
\ : mt_lutxy( last, last.temporalsoften(1,255,0,32,2),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+ST+" * 128 + x 128 - abs y 128 - abs > x "+ST+" * y 100 "+ST+" - * + 100 / x ? ?", chroma="ignore")


it's chroma="ignore", If I remove it work

Although chroma="ignore" has been used in a very few scripts it has never been officially documented by the authors. Maybe pinterf added some sanity checks or fixed a bug which made affected chroma="ignore".

Motenai Yoda
3rd June 2017, 22:17
IIRC chroma="ignore" was removed some time ago.

from deblock_qed changelog
Changes 2011-11-29: (06_taro)
- Replaced (chroma=uv>2?"process":"ignore") by (chroma=uv>2?"process":"copy") to avoid garbage clip when uv=2.
The formal parameter is not used by MaskTools2 any more, if ever used.
Foxyshadis once mentioned chroma="ignore" but I had never found a document containing it.

pinterf
3rd June 2017, 22:35
Although chroma="ignore" has been used in a very few scripts it has never been officially documented by the authors. Maybe pinterf added some sanity checks or fixed a bug which made affected chroma="ignore".
AFAIK, when "chroma" is not matching with any of its valid text values, is converted then to float (or integer before high-bit-depth things). Perhaps "ignore" is not a valid floating point number (yes, I know, it should give human readable error message instead).