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. |
30th January 2012, 21:51 | #41 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
It seems that i have a problem with color space conversion, regarding the LCE function. From YUY2 to RGB, this still creates an error "Assertion failed" in player2.
I installed the Huffyuv (without restart) but the inf file register it... |
31st January 2012, 15:27 | #42 | Link | |
Registered User
Join Date: Apr 2009
Posts: 138
|
Quote:
I was playing with the script.. and it gives very nice results. 1) original 2) 0.5/1.0/0.2/120.0 3) 6.0/1.6/1.0/8.0 How could I clean these little color blocks/artifacts that appear in the walls of 3rd image?. I always have the same problem when using contrastmask scripts in HD movies. A solution is not abuse of the effect.. but I wonder If I can clean the source in certain way to avoid the atifacts |
|
1st February 2012, 13:18 | #43 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
Seesaw
Hi Didée,
This is a lot to learn as a scripting language (also i can't find some good tutorial...). I tried this : function sharpen2(clip) { z = 6 # z = zero point p = 1.6 # p = power str = 1.0 # str = strength rad = 9.0 # radius for "gauss" o = last g = o.bicubicresize(round(o.width()/rad/4)*4,round(o.height()/rad/4)*4).bicubicresize(o.width(),o.height(),1,0) mt_lutxy(o,g,"x x y - abs "+string(z)+" / 1 "+string(p)+" / ^ "+string(z)+" * "+string(str)+" * x y - x y - abs 0.001 + / * +",U=2,V=2) interleave(o,last) } sharpen2() ======================== Error on width, - "invalid argument for function width", even if i add width = 5 Avisynth version = 2.58 therefor i choose an old version of mt_masktools2, because the last one needs 2.6 Thanks, L |
1st February 2012, 14:30 | #46 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,391
|
@ travolter
Well, it's tricky. The best way to "not overdo" the effect is .... to not overdo the effect. It could help to use some "parallel-path denoising", see here. Though, it depends on the temporal characteristic of those unwanted spots. If they are fluctuating, good. If they are persistent/static, bad luck. It would also help to use stronger low-damping (not parametrized, it's the "0.001 +" term in the lut that would need to be increased). However, while this will reduce emphasizing of unwanted spots, it necessarily will also reduce the emphasizing of spots where the effect is actually welcome. Old story: there is a small pixel variation. Is it noise? Is it detail? Simple algorithms can't tell -- it's just that: a small pixel variation. @ lisztfr9 Code:
function NonlinUSM(clip o, float "z", float "pow", float "str", float "rad", float "ldmp") { z = default(z, 6.0) # zero point pow = default(pow, 1.6) # power str = default(str, 1.0) # strength rad = default(rad, 9.0) # radius for "gauss" ldmp= default(ldmp, 0.001) # damping for verysmall differences g = o.bicubicresize(round(o.width()/rad/4)*4,round(o.height()/rad/4)*4).bicubicresize(o.width(),o.height(),1,0) mt_lutxy(o,g,"x x y - abs "+string(z)+" / 1 "+string(pow)+" / ^ "+string(z)+" * "+string(str)+ \ " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" + / * x y - x y - abs 0.001 + / * +",U=2,V=2) #interleave(o,last) # just for visualisation, you don't want the function to do this return(last) }
__________________
- 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; 1st February 2012 at 15:44. |
1st February 2012, 15:28 | #47 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
NonlinUSM
I get this now :
http://cjoint.com/12fe/BBbpwQ9ZyDT.htm there was a small error, by the way, \ " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" / * x y - x y - abs 0.001 + / * +",U=2,V=2) ============================== color-space YV12(), it seems to work L |
1st February 2012, 15:43 | #48 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,391
|
Oops, yes, there was a "+" missing. But your fix is also wrong.
Code:
My fault " * x y - 2 ^ x y - 2 ^ "+string(ldmp)" + / * x y - x y - abs 0.001 + / * +" ^^ Your fault " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" / * x y - x y - abs 0.001 + / * +" ^^ Correct " * x y - 2 ^ x y - 2 ^ "+string(ldmp)+" + / * x y - x y - abs 0.001 + / * +" ^^^^
__________________
- 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!) |
1st February 2012, 19:47 | #49 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
fine !
I have got it to work on the video i want to convert.
The colors seems more saturated, but in another way that would be provided by colormil (VD), more neutral, and better imho. This is a Local contrast enhancement filter, witch is very often my preferred image processing method... it should be used with very large radius, like 50 : http://gimpguru.org/tutorials/removinghaze/ "Set the Radius parameter to a largish, seemingly unreasonable value somewhere between 50 and 100." |
1st February 2012, 22:28 | #50 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
http://cjoint.com/12fe/BBbwsW6v5pi.htm
I would like to remove the dark lines around the white neckties in this movie. Any suggestion ? I open the video in VD, then frameserve to avisynth, to finally convert in Winff. So your function Didée does sharpening and Contrast enhancement. So i have this enabled along with cnr2(), and in VD i desinterlace, crop, and reduce a little the high levels... If you have any better idea ? Sharpening with contrast mask will only underline the neckties and they are already so dam white. Previously i used internal sharpening from VD. Maybe the source is too bad. |
2nd February 2012, 00:46 | #51 | Link | |
Registered User
Join Date: Sep 2007
Posts: 5,377
|
Quote:
http://avisynth.org/mediawiki/Extern...ters#Dehaloing |
|
2nd February 2012, 11:32 | #52 | Link | |
Registered User
Join Date: Apr 2010
Posts: 175
|
Quote:
I agree for reducing the sharpening very often... for example unsharp mask in VD, this creates a lot of artifacts along edges, so i go back to moderated sharpen (internal). Here is the original : http://cjoint.com/12fe/BBclwfwaQAR.htm =============================== I'm trying Dehalo_alpha, it needs the expand function. It is part from mastools, but i have all of them... Ok, i have them all. This begins to wear my cpu (E8400) At a first glance it's very impressive ! It does something on that nasty artifact, - i would never thought it was possible to reduce them ! Thanks very much for your work guys, and support ! Last edited by lisztfr9; 2nd February 2012 at 11:48. Reason: first impression |
|
17th February 2012, 11:46 | #53 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
VirturaldubMod
Now using VirturaldubMod to be able to "play" with the scripts... to fine tune them.
Before i used VD with dmpgdec & Vfapi... http://www.animemusicvideos.org/guid...ppvdubmod.html http://docs.gimp.org/en/gimp-imaging...ng-photography Equalize does a nice effect. Last edited by lisztfr9; 17th February 2012 at 11:47. Reason: wrong url |
24th February 2012, 10:13 | #54 | Link | |
Registered User
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
|
Hi lisztfr9!
Quote:
Code:
ColorYUV(autogain=true, autowhite=true) unsharp(varY=15,varC=15,strength=1.0)# tritical variableblur revision yup. |
|
29th February 2012, 06:32 | #55 | Link |
Registered User
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
|
Hi all!
I suggest variance value relative low for this purpose. I try find relation between radius for Gaussian blur and variance, i find two approaches: from Gimp sigma=(radius+1)/sqrt(2*log10(255)) variance=sigma^2=(radius+1)^2/(2*log10(255)) from common knowledge about normal distribution 3*sigma=radius variance=radius^2/9 Both give higher value variance for local contrast enhancement from 250 to 2000 and for this value I see increase contrast even at strength 0.4. Please confirm my calculations. yup. |
16th April 2012, 09:57 | #56 | Link |
Registered User
Join Date: Apr 2010
Posts: 175
|
(OT)
Hi guys, I have a video with so many problems (VHS record) : 1) The video jerks vertically. It's unstable vertically 2) There is a echo artifact, in form of a white strip (could be blend out with some alpha blending). 3) There is also some flickering, sometimes : the luminescence quickly changes... not mention awful chroma noise, etc. Could the flickering be stabilized with some conditional scripting based on luma ? Anyway this is OT, i will open new thread for healing this video. |
16th April 2012, 13:19 | #57 | Link | |
Registered User
Join Date: Apr 2010
Posts: 175
|
Quote:
Hi all, I already found some virtualdub filters for healing the flickering and the image shaking, Defliker and deshaker, but remains one nasty artifact, like here : http://cjoint.com/12av/BDqolUo6ves.htm How would you handle this ? subtracting a mask from the image, - but any advice would be thankfully taken. Also a good tutorial explaining avisynth scripting... Maybe building on-the-fly the mask from the black strip donwside... Thanks, L Last edited by lisztfr9; 16th April 2012 at 13:19. Reason: spelling error |
|
14th May 2012, 16:08 | #59 | Link |
Huh?
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
|
So the current latest version of HighlightLimiter is the one on post 28 and the latest version of ContrastMask is on the OP, right? Also, is ContrastMask supposed to be obsolete with the latest HighlightLimiter?
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it. |
16th May 2012, 12:13 | #60 | Link |
Registered User
Join Date: Mar 2011
Posts: 48
|
Hi everyone,
Unfortunately my time is extremely limited so I don't have too much time to work on these scripts. Please feel free to adjust/develop/change them to fit your needs. To answer your question Chainmax, ContrastMask has different functionality in the sense that it is purely a contrast mask, while the Highlight/HighlightLimiter functions do things a bit differently. You can see the differences in the posts made by travolter. I guess what I'm trying to say is that if you are looking for a contrast mask to see how it affects your picture, then ContrastMask is what you're looking for. Otherwise you can call it obsolete. These are the versions I have on my PC (and indeed they were written for SmoothLevels 1.x, the smode bit should be removed for SmoothLevels 2.x, but I think the end result might vary a bit so it might need some tweaking in that respect): Code:
function HighlightLimiter(clip v, float "gblur", bool "gradient", int "threshold", bool "twopass", int "amount", bool "softlimit", int "method") { gradient = default (gradient,true) #True uses the gaussian blur to such an extent so as to create an effect similar to a gradient mask being applied to every area that exceeds our threshold. gblur = (gradient==true) ? default (gblur,100) : default (gblur,5.0) #The strength of the gaussian blur to apply. threshold = default (threshold,150) #The lower the value, the more sensitive the filter will be. twopass = default (twopass,false) #Two passes means the area in question gets darkened twice. amount = default (amount,10) #The amount of brightness to be reduced, only applied to method=2 softlimit = default (softlimit,false) #If softlimit is true, then the values around the edges where the pixel value differences occur, will be averaged. method = default (method, 1) #Method 1 is multiply, the classic HDR-way. Any other method set triggers a brightness/gamma approach. amount = (amount>0) ? -amount : amount darken=v.Tweak(sat=0).mt_lut("x "+string(threshold)+" < 0 x ?") blurred= (gradient==true) ? darken.gaussianblur(gblur).gaussianblur(gblur+100).gaussianblur(gblur+200) : darken.gaussianblur(gblur) fuzziness_mask=blurred.mt_edge(mode="prewitt", Y=3, U=2, V=2).mt_expand(mode="both", Y=3, U=2, V=2) multiply = (method==1) ? mt_lut(v,"x x * 255 /") : v.Tweak(bright=amount) multiply = (method==1) ? eval(""" (twopass==true) ? mt_lutxy(multiply,v,"x y * 255 /") : multiply""") : eval(""" (twopass==true) ? multiply.SmoothLevels(gamma=0.9,smode=2) : multiply""") merged=mt_merge(v,multiply,blurred) fuzzy= (softlimit==true) ? mt_merge(merged,mt_lutxy(v,merged,"x y + 2 /"),fuzziness_mask) : merged return fuzzy } Code:
function Highlighter(clip v, float "gblur", bool "gradient", int "threshold", bool "twopass", int "amount", bool "softlimit", int "method") { gradient = default (gradient,true) gblur = (gradient==true) ? default (gblur,100) : default (gblur,5.0) threshold = default (threshold,100) #The lower the value, the more sensitive the filter will be. twopass = default (twopass,false) amount = default (amount,10) softlimit = default (softlimit,false) method = default (method, 1) amount = (amount<0) ? abs(amount) : amount lighten=v.Tweak(sat=0).mt_lut("x "+string(threshold)+" > 0 x ?") blurred= (gradient==true) ? lighten.gaussianblur(gblur).gaussianblur(gblur+100).gaussianblur(gblur+200) : lighten.gaussianblur(gblur) fuzziness_mask=blurred.mt_edge(mode="prewitt", Y=3, U=2, V=2).mt_expand(mode="both", Y=3, U=2, V=2) photoshop_overlay = (method==1) ? mt_lutxy(v,blurred.invert(),"x 127.5 > y 255 x - 127.5 / * x 255 x - - + y x 127.5 / * ? ") : \ (method==2) ? mt_lutxy(v,blurred.invert(),"255 255 x - 255 y - * 255 / -") : v.Tweak(bright=amount) photoshop_overlay = (twopass==true) ? photoshop_overlay.SmoothLevels(gamma=2.0,smode=2) : photoshop_overlay merged=mt_merge(v,photoshop_overlay,blurred) fuzzy= (softlimit==true) ? mt_merge(merged,mt_lutxy(v,merged,"x y + 2 /"),fuzziness_mask) : merged return fuzzy } Last edited by javlak; 16th May 2012 at 13:35. Reason: PEBCAK |
|
|