Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
10th May 2007, 21:19 | #1 | Link |
Registered User
Join Date: Oct 2006
Location: Gotham City, USA
Posts: 389
|
LimitedSharpenFaster vs. VMToon for Animated sources
Until recently, I was never able to get VMToon to work, so I used LimitedSharpenFaster on all of my animated content. For some DVDs, I tweak the strength up or down a little, but in general, the default settings are best (way to go Manao, GREAT tool!!!). I really like how it seems to sharpen different details in different ways, if that makes any sense.
However, I recently got VMToon working properly. I had the wrong version of WarpSharp! DOH! Anyway, in a head to head competition, I think that VMtoon does a SLIGHTLY better job across the board for animated content. And not just the outline darkening, which LSF doesn't do, but in the sharpening itself. At default settings, VMToon provides slightly LESS sharpening then LSF, but the sharpening it does seems like its better tweaked for animation. So, I started swaping out LSF for VMToon in all my AVS scripts... But then I discovered why its called LimitedSharpenFASTER! With all other parts of the AVS script being equal, I get about 14 FPS using LSF, and only 3 FPS using VMToon! (this is the FPS for the huffy creation, IE the pre-rendering job in MeGUI) This works out to an extra 2.3 hours for a 22 minute episode! (an extra 4.6 hours without the pre-render job) So... What is the difference in sharpening routines? (I mean, they are both part of MaskTools, and they must have something in common) Why is LSF SO much faster then VMToon? Anyone ever tried combining LSF with a line darkener as a replacement for VMToon? |
11th May 2007, 05:32 | #2 | Link |
ангел смерти
Join Date: Nov 2004
Location: Lost
Posts: 9,558
|
I always use vmtoon's line darkening and disable everything else. imo the sharpening method is misguided and tries to brute force recreate LSF+Warpsharp, which is what I use. This is how I call it:
vmtoon(sharpen=false,thinning=0,strength=35,luma_cap=203,threshold=8) using avsp to tweak the darkening. I find warpsharp has a more pleasant and much more tweakable 'thinning' effect, and oversampled xsharpen isn't really that great of a sharpener. (The entire reason vmtoon is so slow is that it feeds the equivalent of 16xFSAA into xsharpen, whereas LSF defaults to around 2x.) However, the darkening part is a little nicer than fastlinedarken's, so it's still useful. Of course others may like its specific effects more, I'm not denigrating mf's work to create it. Last edited by foxyshadis; 11th May 2007 at 05:34. |
11th May 2007, 13:07 | #3 | Link |
Registered User
Join Date: Oct 2006
Location: Gotham City, USA
Posts: 389
|
Ah, thank you for your thoughtful response.
As for which sharpening tecnique looks the best, I've only used a few sources since I switched to using VMToon, so its not like I've seen everything yet. Even though I fooled around with VMToon without the line darkening (to compare sharpening routines), I havn't yet tried to turn off the sharpening (to use VMToon as just a line darkener). I'll give that a shot. From what I've seen so far, I'm confident that the combination with LSF and VMToon's line darkening is going to look really good. EDIT: Oh yeah, whats your script look like for combining LSF with Warsharp? |
11th May 2007, 17:25 | #6 | Link | |
Registered User
Join Date: Oct 2006
Location: Gotham City, USA
Posts: 389
|
yah, I second that... Yahoo and google no help, and none of the filter collection websites seem to have it either.
Maybe its part of MaskTools, or WarpSharp? (I'm at work, so I can't check right now) The AMV beta guide seems to imply that VMToon uses FasterLineDarken: Quote:
|
|
11th May 2007, 17:35 | #7 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
Reading carefully, one can notice that the name is not FasterLineDarken.
It's just FastLineDarken, without "er" in it. P.S. Sorting search results in ascending order (instead of default descending) often is quite useful. The oldest post/threads mentioning your target usually are those where the target first saw the light of the world.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) Last edited by Didée; 11th May 2007 at 17:38. |
11th May 2007, 17:56 | #8 | Link |
*Space Reserved*
Join Date: May 2006
Posts: 953
|
I've seen mention of fasterlinedarken somewhere else. I'm guessing that the following is fasterlinedarken; a faster version of fastlinedarken (which is the what check's talking about)
Code:
############################# # FastLineDarken 1.3 MT MOD # ############################# # # Written by Vectrangle, last update 12 Sept 04 # # * requires masktools 1.5.1 -- http://jourdan.madism.org/~manao/ # * requires yv12 input # # Usage is FastLineDarken(strength, luma_cap, threshold, thinning), # named parameters are supported eg FastLineDarken(thinning=0) # # Note that you must import this avs into your script using import("...\FastLineDarken.avs") # # Parameters are: # strength (integer) - Line darkening amount, 0-256. Default 48. Represents the _maximum_ amount # that the luma will be reduced by, weaker lines will be reduced by # proportionately less. # luma_cap (integer) - value from 0 (black) to 255 (white), used to stop the darkening # determination from being 'blinded' by bright pixels, and to stop grey # lines on white backgrounds being darkened. Any pixels brighter than # luma_cap are treated as only being as bright as luma_cap. Lowering # luma_cap tends to reduce line darkening. 255 disables capping. Default 191. # threshold (integer) - any pixels that were going to be darkened by an amount less than # threshold will not be touched. setting this to 0 will disable it, setting # it to 4 (default) is recommended, since often a lot of random pixels are # marked for very slight darkening and a threshold of about 4 should fix # them. Note if you set threshold too high, some lines will not be darkened # thinning (integer) - optional line thinning amount, 0-256. Setting this to 0 will disable it, # which is gives a _big_ speed increase. Note that thinning the lines will # inherently darken the remaining pixels in each line a little. Default 24. # # Changelog: # 1.3 - added ability to thin lines, now runs much slower unless thinning=0. Changed the defaults (again) # 1.2 - huge speed increase using yv12lutxy =) # - weird darkening issues gone (they were caused by yv12layer) # - show option no longer available due to optimizations. Use subtract() instead # 1.1 - added luma_cap option # 1.0 - initial release # function FastLineDarkenMOD( clip c, int "strength", int "luma_cap", int "threshold", int "thinning") { ## parameters ## str = string(default(strength, 48) /128.) lum = string(default(luma_cap, 191)) thr = string(default(threshold, 4)) thinning = default(thinning,24) thn = string(thinning /16.) ## filtering ## exin = c.mt_expand().mt_inpand() diff = mt_lutxy(c,exin,yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? 127 +",uexpr="x",vexpr="x",u=2, v=2) linemask= mt_lut(diff.mt_inpand(),"x 127 - "+thn+" * 255 +").mt_convolution("1 1 1","1 1 1",y=3,u=0,v=0) thick = mt_lutxy(c, exin, yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? "+str+" * x +",uexpr="x",vexpr="x",u=2, v=2) thin = mt_lutxy(c.mt_expand(),diff,yexpr="x y 127 - "+str+" 1 + * +",u=2, v=2) return (thinning == 0) ? thick : mt_merge(thin,thick,linemask,y=3,u=2,v=2) } |
11th May 2007, 18:56 | #9 | Link |
Registered User
Join Date: May 2005
Posts: 236
|
You have toon as well to try if you want : http://forum.doom9.org/showthread.ph...light=toon+0.8
|
11th May 2007, 20:28 | #12 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
It's just a change from MaskTools v1 to MaskTools v2. The speed gain comes mostly from v2's mt_in-/expand(), which are much faster than in-/expand() of v1. And a bit comes of v2's mt_convolution, wich is faster than v1's yv12convolution has been.
(BTW, when using thinning, a tiny bit more speed could be squeezed by replacing mt_convolution("1 1 1","1 1 1",y=3,U=0,V=0) with RemoveGrain(20,-1). Same operation, but faster.) Regarding functionality, both versions should be identical.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) Last edited by Didée; 11th May 2007 at 20:30. |
30th October 2007, 10:16 | #13 | Link |
Leecher
Join Date: Aug 2007
Location: Vietnam
Posts: 19
|
Hello there. I'm new here. I have a problem with the FastLineDarken and FastLineDarkenMod. It's about the thinning parameter. The result is pretty good if I set it to 0. But when I set it to a greater number than 0, the entire video will look terrible like this. I don't know why. I'm using AVISynth 2.5.7 and MaskTools 1.58. Is there a way to solve this problem?
Last edited by legionator2; 30th October 2007 at 10:36. |
30th October 2007, 10:38 | #14 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
Seems that FastLineDarkenMOD() still is not correct ...
Code:
function FastLineDarkenMOD( clip c, int "strength", int "luma_cap", int "threshold", int "thinning") { ## parameters ## str = string(default(strength, 48) /128.) lum = string(default(luma_cap, 191)) thr = string(default(threshold, 4)) thinning = default(thinning,24) thn = string(thinning /16.) ## filtering ## exin = c.mt_expand().mt_inpand() diff = mt_lutxy(c,exin,yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? 127 +",uexpr="x",vexpr="x",u=2, v=2) linemask= mt_lut(diff.mt_inpand(),"x 127 - "+thn+" * 255 +").mt_convolution("1 1 1","1 1 1",y=3,u=0,v=0) thick = mt_lutxy(c, exin, yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? "+str+" * x +",uexpr="x",vexpr="x",u=2, v=2) thin = mt_lutxy(c.mt_expand(U=2,V=2),diff,yexpr="x y 127 - "+str+" 1 + * +",u=2, v=2) return (thinning == 0) ? thick : mt_merge(thin,thick,linemask,y=3,u=2,v=2) } (Or alternatively, "U=4,V=4" in the last mt_merge line.) Replacing the green code with ".RemoveGrain(20,-1)" gives a little speed boost.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
5th October 2012, 19:03 | #17 | Link |
Registered User
Join Date: Sep 2008
Posts: 365
|
Code:
function FastLineDarkenMOD2( clip c, int "strength", int "luma_cap", int "threshold", int "thinning") { ## parameters ## str = string(default(strength, 48) /128.) lum = string(default(luma_cap, 191)) thr = string(default(threshold, 4)) thinning = default(thinning,24) thn = string(thinning /16.) ## filtering ## exin = c.mt_expand().mt_inpand() diff = mt_lutxy(c,exin,yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? 127 +",uexpr="x",vexpr="x",u=2, v=2) linemask= mt_lut(diff.mt_inpand(),"x 127 - "+thn+" * 255 +").mt_convolution("1 1 1","1 1 1",y=3,u=0,v=0)#".RemoveGrain(20,-1)" gives a little speed boost. thick = mt_lutxy(c, exin, yexpr="y "+lum+" < y "+lum+" ? x "+thr+" + > x y "+lum+" < y "+lum+" ? - 0 ? "+str+" * x +",uexpr="x",vexpr="x",u=2, v=2) thin = mt_lutxy(c.mt_expand(U=2,V=2),diff,yexpr="x y 127 - "+str+" 1 + * +",u=2, v=2) return (thinning == 0) ? thick : mt_merge(thin,thick,linemask,y=3,u=2,v=2) }
__________________
(i have a tendency to drunk post) |
Thread Tools | Search this Thread |
Display Modes | |
|
|