![]() |
Trying out LimitedSharpen()
We really should have a look closer on that incredible LimitedSharpen() function of Didée and try to figure out its many parameters as this blows my eyes almost out ! 8O
Screenshots where taken from the german Gleitz board where Dideé used on a bad capture a BlindDeHalo filter followed by LimitedSharpen(). The Source: http://www.digitalfaq.com/archives/i...2005/08/36.jpg The "little" difference after applying the above mentioned routines: http://www.digitalfaq.com/archives/i...2005/08/37.jpg Now for shure there have been "halos" at the edges of the source. BUT my main interesting is as in case of good non-anamorph sources (like letterboxed 1.78:1 or 2.35:1 to 4:3 ones) we could size it up vertically back to a real anamorph state and apply LimitedSharpen() using individual best parameters. You can clearly see IF there wouldn't have been halos in the source it still would have been quite unsharp, like if you would size UP. The real "pulling" of details where made by using LimitedSharpen. So Gentlemen, ... someone gots a Letterboxed 16:9 Non-Anamorph 4:3 original DVD? So lets try out. My trashy produced DVD of TITANIC for instance is in a non-anamorph state, means a 2.35:1 picture area with BIG Borders on Top/Bottom within 720x576. So if sizing up the height by the anamorph factor h*1.333 or (h/0.75), cropping the height centered to 576 again and finally applying LimitedSharpen(9 (and maybe some other stuff) could be a now workout for "restoring" non-anamorph Widescreen sources out of trashy original DVDs back to the nice anamorph state. The function LimitedSharpen() can be found here: http://forum.doom9.org/showthread.ph...limitedsharpen Shure its slow as complex edgemask building procedures are used, but I do think in some cases its really worth it. A way to de-halo'ing before pulling details could be archived by this: repair(last,last.blur(1), 1,1,1) (also posted by didée) (The Repair function out of the RemoveGrain Package is a VERY good filter when applying filters as they wont work "stupid" all over the whole frame ... said in stupid english words ;) ) Here's btw the full posting of Didée at the Gleitz Board, its in german, but the AVS lines and pic links are the ones which count imho. http://forum.gleitz.info/showpost.ph...5&postcount=99 |
Thanks for the info Inc, that filter certainly looks impressive maybe it is worth looking into.
Unfortunately I am going to be extremely busy over the next couple of weeks so I cannot runs any tests myself but I would be interested to see the results of those who have run tests. :) |
WOW 8O
Look at those edges, and the details :!: I can clearly see the difference :) halo, or is it really a chroma shift fix :?: Gotta play with this filter :D Thanks Andrej!, -kwag |
Re: Trying out LimitedSharpen()
Quote:
|
@ Karl
Halos are lit-glows at edges and as you see the edgeglowing is not a chroma issue but light issue as the contrast in the light has been enhanced dramatically. Thats als btw what a sharpening filter does in its approach. But as said, my purpose is not eliminating halos as I dont have such sources, but look btw. at that blur on the image above! Means if even there's no halo, the image would look even better if its just blurred like above. Limited sharpen does use verrry nice procedures based on special edgemasks where even smallest details will be seen and enhanced by following routines by still avoiding overfiltering other areas. @ Prodater ? The advantage is the same as you have with anamorphic in general, means more details in the height where finally on a 16:9 TV set only the width gets stretched = far better picture compared to if just zooming a 4:3 Letterboxed movie till it fits the 16:9 Window in its active movie pixels. |
Quote:
It was not a captious question. |
I did'nt want to treat you like a fool!
Sorry if it looked like ;) |
Well I just used Limitedsharpen on the non anamorph TITANIC Source.
No real tweaking, just a bit, means the optimum is not reached. But for the first try its near to be sexy ;) Seen from left to right .... 1. Original NonAnamorph 2. Scaled up in height to match anamorph and cropped so height matches 576 again 3. Also scaled up but LimitedSharpen used http://www.digitalfaq.com/archives/error.gif |
I'm sorry to tell that the result from this filter is like all other sharpener : ugly.
People will tell you that the third picture is more pleasant than the second but do compare it to the original source : the original picture is completly denatured. Doing that is like duplicate a stereo audio stream to the rear chanel and tell "whaow, Dolby surround rocks !". |
Did you read this line?
Quote:
|
If you'd like to have some extra processing speed and happen to have a dual-CPU or multithread-capable (such as P4 HT or any dual-core processor) system, try tsp's MT.
http://forum.doom9.org/showthread.php?t=94996 Most Didée's functions just love it :wink: |
Quote:
Either you sharpen too much, as above. Or you sharpen "just enougth" and... all will be lost by the next encoding/decoding/rendering on the screen. So what is the result ? You just lost time + bitrate (= quality loss) ! The only place where a sharpen should take place is on the final step. And that is where I use it (on the TV set or in the SPA setup when it has one, or sometimes with ffdshow when I link directly the PC to the TV). Note : I'm note speaking about using the sharpener to restore something obviously bad like the first snapshots you posted in this thread. Eventually we can discuss also about to use a sharpener to reduce the lost from a previous filter. But sharpening with the goal to enhance details is just a bad idea IMHO. |
LimitedSharpen does NOT sharpen the way we know, means just bumping up the contrast on edges. Its a different approach, wich is very well explained in the LS() Doom9 Thread.
That "subjective" detailenhancer also is included in ipp.avsi, also a function at doom9 where you can see Pics whats possible when using correct individual parameters and thats the thing to be figured out on individual sources. http://forum.doom9.org/showthread.ph...035#post518035 Yep I know, where no detail is, there wont be more objective pixeldata after a function in effective, but we're talking about subjective recognision of a picture. But if you look in here related to details I think it speaks for itself. Thats what I like on LS(), it doesnt "halo"'ing the final image as if a regular "sharpener" would do. All bases on correct setted parameters as said above. Quote:
But related to Bitrate ... yes more Bitrate is needed. Related to Quality loss ... not in general, cause someone can decide if his goal is to get two movies in good quality on one DVD5 or only one Movie in even better quality to one DVD5. I do prefer the one-movie-per-DVD5 as I do get good RITEK (incl. the good ID) Medias for about 2.95 per box incl. 5 Medias. |
This thread is interresting.
I prefer this denomination : "DetailEnhancer" :) Thank you Inc, I will look into it. |
8O
I mean if you would bump up a stupid sharpener to pull out details like below a very ugly sideffect of glowing/halo'ing would occur, but even when using high values LS() wont halo the edges. Parameters maybe set hard, but Picture looks clearer and even the pimples from Harrison Ford can be seen :lol: (yep thats his skin and NOT noise ;) ) http://www.digitalfaq.com/archives/i...2005/08/39.jpg http://www.digitalfaq.com/archives/i...2005/08/40.jpg Look at the ground where R2 and C3po are walking: http://www.digitalfaq.com/archives/i...2005/08/41.jpg Look at the Wall above C3pos arm: http://www.digitalfaq.com/archives/i...2005/08/42.jpg I think that function is really worth a try :) Thanks to ImageShack for Free Image Hosting |
Are these picture that you did yourself ?
I find the results a little "too much" (espacially the last one). Just like if someone tried to convince people by any means necessary... cheating including. |
Yep, these I did by myself. The difference to the "Titanic" approach now was that I took a bit more time to tweak ;)
As also said above the settings are set very hard, but I wanted to see whats possible without getting typical common shaprden-artifacts. I think lowering the params is no problem but its really incredible how that function pulls out details (like you can see on C3pos chest on the last picture or the earth wall left side to him). You can pull out more details as seen above without too much mega sharpen if using higher SS_x/y values. SS stands for supersampling, means the source will be sized up to the factor x or y where the contrast-engine does "catch" better the little luma differencies which results in more details when internally downsizing finally. partial Supersampling-code of LS() Code:
ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : lastQuote:
|
Quote:
I saw that so many times on the forums ! That is what I call "try to convince by any means necessary". Note: how much time to encode, let say, one minute of video ? |
Quote:
a) These filtered/orig pics are from an original DVDsource of min, so the filter acts "trueful" b) If someone unknown jumps out of the ashes like phoenix yelling "Mine does the impossible" ... for shure I'm in doubt. But Didée is known for very excellent functions (if used correctly!) ... like Restore24(), YLevels() etc. So I do trust him and I see what others (correct using users) reached using his filters. The encoding time - well .... try out, it rises, my last workout needed 100-200% more than a regular encode. |
I recommend kassandro's AVSTimer plugin for testing different filters' performance.
|
I love Kassandros Filter Stuff, but its quite uncomfortable to get an overview of his filters as all do have a separate domain.
Boulder, do you know a link-collection of "his" domains? Or do you even know all his filters/domains? As I wasn't that active the past months in the avisynth dev area :) |
Uh, I'm often confused as well :lol:
I'd say look for removedirt, removegrain, avstimer, avsrecursion and ssetools (under construction) - add the word in www.xxx.de.tf. As his documenting style is very verbose, I guess he decided to make separate domains for each one. One single page with all the links would have been really great, maybe I should ask him to do that. Nowadays I use Didée's LTSMC for my analog captures so I haven't had to keep up with all the different plugins, IIRC that one uses RemoveGrain and SSETools from kassandro's plugins. kassandro's forum is a good place for information, and he's also very positive towards any new ideas - as you can see from RemoveGrain, which contains ~30 modes already 8O |
Quote:
|
@ Boulder
Ahhhh ... 8) www.RemoveGrain.de.tf www.RemoveDirt.de.tf www.ReduceFlicker.de.tf www.AvsTimer.de.tf www.AvsRecursion.de.tf www.mdeblock.de.tf www.SseTools.de.tf (preparation stage) Btw when searching for LTSMC() I saw this nice "Bazzzzzong" Site: http://www.avisynth.info/?%B4%D8%CF%...E5%A1%BC%A5%B9 Also interesting for avs 2.56 betas users which still want to use Mpeg2Dec3.dll on DVD2Avi generated d2v projects: http://videoprocessing.11.forumer.com/viewtopic.php?t=2 |
Quote:
|
whow, great (and slow) function. 8O
I tweaked around a bit and with: Code:
limitedsharpen(ss_x=2.0,ss_y=2.0, lmode=2, wide=true, strength=50, dest_x=..., dest_y=...)I'm really impressed with it's capabilities! 8) |
Quote:
The dest_x,dest_y is also very useful by adding the resize parameters from Fitcd if LS() is at the beginning of your script (I for my taste prefer putting that fuction more towards to the script's end as Im used to put the sharpener as one of the last steps. That LS() in combination with the (fast!) LRemovedust(4,1) function on good DVD sources gives me a hughe enhancement. I dont care that much about the Speed of LS() in this workout purpose as it will be compensate by the time the OPV encodings do need compared to 2pass. But that always was the rule of tumb: Complexer functions do need more time, but often it's worth the time consumption ... well depends on the function ;). |
Quote:
For the LS I hope that will be acceptable on my 1.6Ghz (:cry:) else I will have to wait before to play with it :) |
I do clearly remember VagueDenoiser and the hype on it. I NEVER was that addicted on it when it came out as I experimented a lot with it and the quality wasn't worth the speed drop. (just imho). See the "how funny" thread in here ;)
But I do also remember Pixiedust() which is still used by many experienced persons as it supports motionvector based denoising. Now back to LS(). There are two parameters which do cause each by its own a hughe speed decrease. If Supersampling values are bigger than 1 (ss_x, ss_y) which causes temporal total upsizing by *x ... and if Edgemode is bigger than 0, cause this forces LS() to use a very complex mask and a maskedmerge finally. Even its a double sobel matrix based one, it often keeps some details out. So IF u go into a movie using LS() which is a very clean DVDsource like my StarWars example above I personally do switch that mask off using Edgemode = 0. BUT you should use a good detailkeeping denoiser before so that a unwanted rest of significant irritations or significant uneasy pixels won't be sharpenend too. If using Edgemode = 0 and the frames do result in more "detailed" noise, then switch the edgemode on using 1. I tried to find a compromise between details less noise and speed ;) This is just a first approach NOTHING defenitely for me as it could result even better: Code:
Mpeg2Source("....",cpu=4)A hint: DON'T apply LS() on typo parts like beginning or end credits. It does a nice "subjective" job on natural scenes but on typographics it behaves subectively too strong imho. An ApplyRange() Routine should keep these unwanted scenes not to be treaten by LS(). |
Yep .. diff Sources are diff. to handle.
For making Titanic 4:3 to 16:9 I used this one finally and its fast: Code:
dgdecode_MPEG2Source(".....")http://www.digitalfaq.com/archives/error.gif I have to use converttoYUY2().converttoYV12().LRemovedust(4,2) including that "nonsense" Colorspace conversion as it seems my version of Removegrain does have a chroma memory align bug. If I dont use these, The LRemoveDust() Function drops significantly in its speed. |
Quote:
What the hell is that line ? Edit: you explained it after, sorry. Note: what really surprise me is how bad is your source. I should take a snapshot from the KDVD I did from mine just to compare. Yours is so blur that I wonder how I never noticed that. Remember me the time where is this scene and I'll try to pick the same frame. |
As told that is a 9,95 Euro trash DVD Edition, means heavy quantisation as much trailers of other moviepreviews are included and took space from the main movie and it has been produced as letterboxed 4:3 ! :puke:
That's why I decided to take that worst orig DVD case as source 8) Keep in mind that the blur got even more as I sized it up vertically to restore back the wanted anamorph state. |
Quote:
|
Quote:
|
Yep, that was the first I tried. But no way. I do have an Athlon XP and Im not shure if Im using the latest release of Removegrain and its dlls.
|
I've got this one : http://home.arcor.de/kassandro/Remov...emoveGrain.rar (RemoveGrain v1.0 prerelease) and the last SSETools from the official RemoveGrain v0.9 package. Confusing, huh 8O
I'm using the latest Avisynth beta package from SourceForge with the fixed avisynth.dll, which can be found here. Some earlier Avisynth beta caused a huge degrade in LRemoveDust's performance on my system, due to the changes in the alignment I think. |
Quote:
Quote:
Thats a really good hint as the degraded performance of LRemoveDust() is exactly my issue when not doing the YUY2.YV12 forth'n back conversion. I also recognised if you got a nice very detailed but noisy DVDsource, even LRemovedust(4,1) does attack some fine details, thats why a combo of that function and LS() is a good way to go for me. I wanted to try out the latest LTSMC() Function from Didée, but had no time. Im waiting for how "fast" it will perform as IIRC MVtools() are used :lol: Anyway, Didée is very innovative with his script developings. |
LTSMC (like LimitedSharpen) is pretty slow with non-multithreading processors. I got quite a nice speedup with both of them with the MT plugin on my P4. Needless to say, the cleaning capabilities are superior.
Have you tried LRemoveDust(17,1)? It should be a bit more conservative when it comes to thin lines. |
In which plugin is the LRemoveDust ?
I can't find it in the RemoveGrain doc. Is is in RemoveDust ? |
As far as I know it's a function from Didee:
Code:
function LRemoveDust(clip input, int _mode, int "limit")btw you need to load removegrain and repair for this, both founded in the removegrain package. |
Site design, images and content © 2002-2026 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2026 Jelsoft Enterprises Ltd.