What are some good video processing scripts will work for color? I don't know how to upload a clip so I won't bother. I am looking for scripts. I did a Google search. I couldn't find that many. I have a script. The script worked a few times. All other times. I put fft3w.dll in my system32 folder and I get an error saying it's not a AviSynth plugin. I am not looking for any scripts that will give me a hassel. See below for my script.
source=last
denoised=FFT3DFilter(sigma=6,sigma2=6,sigma3=5,sig ma4=4,bt=5,bw=32,bh=32,ow=16,oh=16,plane=4)
backward_vec2 = MVAnalyse(denoised,isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
backward_vec1 = MVAnalyse(denoised,isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec1 = MVAnalyse(denoised,isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec2 = MVAnalyse(denoised,isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
MVDegrain2(source,backward_vec1,forward_vec1,backw ard_vec2,forward_vec2,thSAD=400,idx=2)
+ Reply to Thread
Results 1 to 22 of 22
-
-
fft3w.dll goes into your c:\Windows\system32 folder and nowhere else. You don't load it in your Avisynth script, it automatically loads on it's own.
FFT3DFilter.dll and MVtools.dll go in c:\program files\avisynth 2.5\plugins
The script you posted is a powerful (and slow) noise and grain reduction script. It's really good.
So depending on your source file, it would work like this
avisource("Your_AVI_File.avi")
Converttoyv12()
source=last
denoised=FFT3DFilter(sigma=6,sigma2=6,sigma3=5,sig ma4=4,bt=5,bw=32,bh=32,ow=16,oh=16,plane=4)
backward_vec2 = MVAnalyse(denoised,isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
backward_vec1 = MVAnalyse(denoised,isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec1 = MVAnalyse(denoised,isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec2 = MVAnalyse(denoised,isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
MVDegrain2(source,backward_vec1,forward_vec1,backw ard_vec2,forward_vec2,thSAD=400,idx=2)
If you want easy to use Avisynth scripts and functions, download AutoMKV and do your processing with it. I recommend testing out LimitedSharpen and SeeSaw -
Soopafresh,
Do I load FFT3DFilter in my script? I rather write the scripts instead of using Auto. Also, could I load either LimitedSharpen, or SeaSaw in the script I gave? Would SeaSaw be better then LimitedSharpen? How do I write the lines for either one? What do I write in my script?
Originally Posted by Soopafresh -
This is the script I have. I get this error. The only thing I know how to do is upload attachments. I do not know how to take clips. I will upload an attachment of the error I get.
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\fftw3.dll")
AVISource("H:\The Breakfast Club (1985)\video.avi")
LanczosResize(640,352)
source=last
denoised=FFT3DFilter(sigma=6,sigma2=6,sigma3=5,sig ma4=4,bt=5,bw=32,bh=32,ow=16,oh=16,plane=4)
backward_vec2 = MVAnalyse(denoised,isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
backward_vec1 = MVAnalyse(denoised,isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec1 = MVAnalyse(denoised,isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec2 = MVAnalyse(denoised,isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
MVDegrain2(source,backward_vec1,forward_vec1,backw ard_vec2,forward_vec2,thSAD=400,idx=2)
-
take fft3w.dll out of the plugins folder. Move it to c:\windows\system32
You're getting the 2 files confused. FFT3dFilter.dll and fft3w.dll -
Originally Posted by rocky12
Otherwise: Get AvsP to play with Avisynth scripts and get instant feedback.
Check out the Doom9 forum, that's where the Avisynth gods hang out. -
Originally Posted by Soopafresh
I got it to load in. Now, in my previous post. I asked, could I use SeaSaw with my powerful script? If so, what lines do I add? -
Originally Posted by rocky12
http://forum.doom9.org/showthread.php?t=104701
http://avisynth.org/mediawiki/SeeSaw -
Originally Posted by AlanHK
I get a error using that SeeSaw line from Doom9. Here is a copy of my script. I am going to upload a screenshot of the error.
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mvtools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\FFT3DFilter.dll")
AVISource("H:\The Breakfast Club (1985)\video.avi")
LanczosResize(640,352)
Converttoyv12()
SeeSaw(a,b, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16)
source=last
denoised=FFT3DFilter(sigma=6,sigma2=6,sigma3=5,sig ma4=4,bt=5,bw=32,bh=32,ow=16,oh=16,plane=4)
backward_vec2 = MVAnalyse(denoised,isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
backward_vec1 = MVAnalyse(denoised,isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec1 = MVAnalyse(denoised,isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
forward_vec2 = MVAnalyse(denoised,isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1,dct=1)
MVDegrain2(source,backward_vec1,forward_vec1,backw ard_vec2,forward_vec2,thSAD=400,idx=2)
-
You didn't define "a".
See http://avisynth.org/mediawiki/SeeSaw
Examples -
Originally Posted by AlanHK
I still do NOT understand. I am at Doom9 with this same problem. NO, I am not using Auto scripts, or even AutoGK. What does define a means? What does define b means? I don't understand. Doom9, said define a and b. I put video.avi in place of a and b. I don't know what "video" means. What am I suppose to put in? It's not understanding anything I put in. -
Originally Posted by AlanHK
Originally Posted by rocky12 -
Originally Posted by manono
The script loads without SeeSaw. I don't see how do I get SeeSaw to load in my script. How do I define "a"? How do I define "b"? I don't see how. The script does run without SeeSaw. -
One way to make it work is to just leave out the "a" and "b" (assuming you haven't left out any needed DLLs or functions, or messed up something else). That may not be the best way to go about it, though, since you want to use your denoising as part of SeeSaw, rather than independently of it.
Did you read, study, and understand the scripts in the SeeSaw link AlanHK provided? No? I thought not. Instead you go around here and Doom9 trying to get someone to give you the answer without you having to learn and understand anything. Maybe Didée just did. He invented it. But, as he says, although the script may now open and work, there's no way to tell if that script is suited for the source material. -
Originally Posted by manono
There is no function named "SeeSaw". Does that mean I need to import SeeSaw? I have found the .avs on AviSynth. I am not sure which to add and save to my plugins. I will post the whole thing below.
# SeeSaw v0.3e (02 Jan 2006)
#
# (Full Name: "Denoiser-and-Sharpener-are-riding-the-SeeSaw" )
#
# This function provides a (simple) implementation of the "crystality sharpen" principle.
# In conjunction with a user-specified denoised clip, the aim is to enhance
# weak detail, hopefully without oversharpening or creating jaggies on strong
# detail, and produce a result that is temporally stable without detail shimmering,
# while keeping everything within reasonable bitrate requirements.
# This is done by intermixing source, denoised source and a modified sharpening process,
# in a seesaw-like manner.
#
# This version is considered alpha.
#
# Usage:
#
# a = TheNoisySource
# b = a.YourPreferredDenoising()
# SeeSaw( a, b, [parameters] )
#
# You're very much encouraged to feed your own custom denoised clip into SeeSaw.
# If the "denoised" clip parameter is omitted, a simple "spatial pressdown" filter is used.
#
#
# Fiddled together by Didée, for your pleasure.
#
# ======= Main function =======
function SeeSaw( clip clp, clip "denoised",
\ int "NRlimit",int "NRlimit2",
\ float "Sstr", int "Slimit", float "Spower", float "SdampLo", float "SdampHi", float "Szp",
\ float "bias", int "Smode", int "sootheT", int "sootheS", float "ssx", float "ssy")
{
ssx = default( ssx, 1.0 ) # supersampling factor x / SeeSaw doesn't require supersampling urgently.
ssy = default( ssy, ssx ) # supersampling factor y / if at all, small values ~1.25 seem to be enough.
NRlimit = default( NRlimit, 2 ) # absolute limit for pixel change by denoising
NRlimit2 = default( NRlimit2, NRlimit+1) # limit for intermediate denoising
Sstr = default( Sstr, 1.5 ) # Sharpening strength (don't touch this too much)
Slimit = default( Slimit, NRlimit+2 ) # positive: absolute limit for pixel change by sharpening
# negative: pixel's sharpening difference is reduced to diff=pow(diff,1/abs(limit))
Spower = default( Spower, 4 ) # exponent for modified sharpener
Szp = default( Szp, 16+2 ) # zero point - below: overdrive sharpening - above: reduced sharpening
SdampLo = default( SdampLo, Spower+1 ) # reduces overdrive sharpening for very small changes
SdampHi = default( SdampHi, 24 ) # further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
bias = default( bias, 49 ) # bias towards detail ( >= 50 ) , or towards calm result ( < 50 )
Smode = default( Smode, ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19 )
sootheT = default( sootheT, 49 ) # 0=minimum, 100=maximum soothing of sharpener's temporal instableness.
# (-100 .. -1 : will chain 2 instances of temporal soothing.)
sootheS = default( sootheS, 0 ) # 0=minimum, 100=maximum smoothing of sharpener's spatial effect.
Szp = Szp / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
SdampLo = SdampLo / pow(Sstr, 1.0/4.0) / pow( (ssx+ssy)/2.0, 1.0/2.0 )
ox=clp.width
oy=clp.height
xss = m4(ox*ssx)
yss = m4(oy*ssy)
NRL = string( NRlimit )
NRL2 = string( NRlimit2 )
NRLL = string( int(round( NRlimit2 * 100.0/bias - 1.0 )) )
SLIM = string( abs(Slimit) )
BIAS1 = string( bias )
BIAS2 = string( 100-bias )
#ZRP = string( abs(Szp) )
#PWR = string( abs(Spower) )
#DMP = string( SdampLo )
denoised = defined(denoised) ? denoised : mt_lutxy(clp,clp.removegrain(4,-1),"x "+NRL+" + y < x "+NRL+" + x "+NRL+" - y > x "+NRL+" - y ? ?",chroma="copy first")
NRdiff = mt_makediff(clp,denoised,chroma="process")
tame = mt_lutxy(clp,denoised,"x "+NRLL+" + y < x "+NRL2+" + x "+NRLL+" - y > x "+NRL2+" - x "+BIAS1+" * y "+BIAS2+" * + 100 / ? ?")
head = tame.sharpen2(Sstr,Spower,Szp,SdampLo,SdampHi,4)
# head = head.mt_merge(tame,tame.prewitt(multiplier=1.0).mt _expand().removegrain(20))
(ssx==1.0 && ssy==1.0) ? repair(tame.sharpen2(Sstr,Spower,Szp,SdampLo,Sdamp Hi,Smode),head,1,-1,-1)
\ : repair(tame.lanczosresize(xss,yss).sharpen2(Sstr,S power,Szp,SdampLo,SdampHi,Smode),head.bicubicresiz e(xss,yss,-.2,.6),1,-1,-1).lanczosresize(ox,oy)
SootheSS(last,tame,sootheT,sootheS)
sharpdiff= mt_makediff(tame,last)
(NRlimit==0) ? clp : \
mt_lutxy(clp,NRdiff, "y 128 "+NRL+" + > x "+NRL+" - y 128 "+NRL+" - < x "+NRL+" + x y 128 - - ? ?",chroma="process")
Slimit>=0 ? mt_lutxy(last,sharpdiff,"y 128 "+SLIM+" + > x "+SLIM+" - y 128 "+SLIM+" - < x "+SLIM+" + x y 128 - - ? ?",chroma="copy first")
\ : mt_lutxy(last,sharpdiff,"y 128 == x x y 128 - abs 1 "+SlIM+" / ^ y 128 - y 128 - abs / * - ?",chroma="copy first")
return( last )
}
# ======= Modified sharpening function =======
function sharpen2(clip clp, float strength, int power, float zp, float lodmp, float hidmp, int rgmode)
{
STR = string( strength )
PWR = string( 1.0/float(power) )
ZRP = string( ZP )
DMP = string( lodmp )
HDMP = (hidmp==0) ? "1" : "1 x y - abs "+string(hidmp)+" / 4 ^ +"
mt_lutxy( clp, clp.RemoveGrain(rgmode,-1,-1), \
"x y == x x x y - abs "+ZRP+" / "+PWR+" ^ "+ZRP+" * "+STR+" * x y - 2 ^ x y - 2 ^ "+DMP+" + / * x y - x y - abs / * "+HDMP+" / + ?",chroma="copy first")
return( last )
}
# ======= Soothe() function to stabilze sharpening =======
function SootheSS(clip sharp, clip orig, int "sootheT", int "sootheS")
{
sootheT = default(sootheT, 25 )
sootheS = default(sootheS, 0 )
sootheT = (sootheT > 100) ? 100 : (sootheT < -100) ? -100 : sootheT
sootheS = (sootheS > 100) ? 100 : (sootheS < 0) ? 0 : sootheS
ST = string( 100 - abs(sootheT))
SSPT = string( 100 - abs(sootheS))
mt_makediff(orig,sharp)
(sootheS==0) ? last
\ : mt_lutxy( last, last.removegrain(20,-1,-1),
\ "x 128 - y 128 - * 0 < x 128 - 100 / "+SSPT+" * 128 + x 128 - abs y 128 - abs > x "+SSPT+" * y 100 "+SSPT+" - * + 100 / x ? ?", chroma="ignore")
(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")
(sootheT > -1) ? 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")
mt_makediff(orig,last)
# mergechroma(sharp) # not needed in SeeSaw
return( last )
}
# ======= MOD4-and-atleast-16 helper function =======
function m4(float x) {x<16?16:int(round(x/4.0)*4)} -
Originally Posted by rocky12
Originally Posted by rocky12
You MUST read up on the commands and syntax if you want to get anywhere.
You can't just cut and paste slabs of code, you have to understand at least their inputs and outputs.
New to AviSynth - start here
If that doesn't mean anything to you, then give up now.
That said, it isn't hard, especially if you have any background in coding. But it is not point-and-click. You have to read, understand and modify code. -
The SeeSaw script also uses 2 external filters: RemoveGrain and MaskTools. If you don't load their dll's, some error messages will mention 'unknown functions' actually belonging to one of those filters. Using parameters a and b means you have 2 clips: original one and the one processed by a denoising filter already applied in your script (look at the example in the beginning of the script). So along with undefined parameters you are using wrong place in the script for putting the SeeSaw line. It should be after MVDegrain2 if you want to use its output as 'denoised' clip b. Then to define clip parameters in SeeSaw you could use already defined 'source' instead of 'a' (original clip) and 'last' (MVDegrain output) as 'b'.
Those are just the actions (maybe not complete) to give it a chance for working. I'm not sure it is good for your video to use so complicated and slow-working things. It is usually a better idea to avoid unnecessary filtering. -
Originally Posted by rocky12
-
Originally Posted by AlanHK
One other thing. Please stop telling me to look at beginners. -
Originally Posted by rocky12
It took me two minutes to find, but that you can't be bothered to look and expect everyone else to spoonfeed you is wearing thin.
Originally Posted by rocky12 -
Originally Posted by rocky12
http://avisynth.org/mediawiki/MaskTools2
Similar Threads
-
Please suggest good AviSynth Anti-Aliasing & Rainbow Remover scripts
By VideoFanatic in forum RestorationReplies: 0Last Post: 30th Nov 2011, 06:54 -
Looking For Video Processing Problems
By Saint_Emperor in forum EditingReplies: 8Last Post: 6th May 2011, 16:25 -
AVS scripts for MeGUI - why do they resize the video
By Bully9 in forum Video ConversionReplies: 0Last Post: 17th Mar 2010, 16:16 -
avisynth scripts as avidemux2 video filter in Linux (external plugin )
By fahr in forum LinuxReplies: 0Last Post: 12th Mar 2009, 08:37 -
Share your AVISynth scripts specifically for DV camcorder video
By sd_smoker in forum Newbie / General discussionsReplies: 8Last Post: 3rd Jul 2008, 11:06