logo Sign In

GOUT image stabilization - Released

Author
Time
 (Edited)

I’ve been working on trying to get rid of the image shake on the GOUT for quite a while, and I finally got something that works quite well. Here is my Avisynth script so far:

removed preliminary script. see below for updates.

 

I don’t do anything in the y direction because there isn’t that much shake in that direction, and because I don’t want to throw away any more lines due to the borders moving up and down. When I get around to adding borders and resizing for anamorphic, I would also like to add a small amount on the sides for TVs with overscan.

I also plan on adding this to the great work that Arnie.d and Moth3r have already done with anti-aliasing, anamorphic, and subtitles…

I plan on putting up some comparision clips soon, but those of you that can run this script, please let me know what you think!

-G

Author
Time
I don't have the files on my PC right now so I can't try your script.

By the image shake do you mean the left-right shake of the entire frame or the movement that sometimes occurs very locally within a frame? Also, do you plan to use it for certain scenes only or do you use it on the entire film? Did you notice any bad side effect?
Fez: I am so excited about Star Whores.
Hyde: Fezzy, man, it's Star Wars.
Author
Time
Originally posted by: Arnie.d
I don't have the files on my PC right now so I can't try your script.

By the image shake do you mean the left-right shake of the entire frame or the movement that sometimes occurs very locally within a frame? Also, do you plan to use it for certain scenes only or do you use it on the entire film? Did you notice any bad side effect?


This takes care of the left-right shake of the entire frame. Maybe some subsequent filtering will help with the local shake/distortion. The only bad effect is that it can't fix scenes with static backgrounds and large moving foregrounds (think close-up of Vader's head moving back and forth with the walls of the Blockade Runner in the corner). Most scenes however look much more stable now. It really is a drastic improvement! I plan to use it in the entire film but maybe shut it off for a select few scenes. Once I get a chance to view the entire film I will make a decision on that.

-G

Author
Time
 (Edited)

#######################################################################################
#################### GOUT Filter By G-force V.15.00 USE ONLY ON ANH ###################
#######################################################################################

########## setup
episode = 4
Mpeg2Source("C:\Documents and Settings\Owner\Desktop\AviSynth Scripts\VTS_03_1.d2v") # <-----Set path

########## cut off some of the black bars for faster processing (but keep mod 16)
Crop(0,96,0,-96,align=true)

########## black level/gamma, hue
Levels(10,1.08,255,0,255).Tweak(hue=-3)

########## de-ring
pm = last
h4 = pm.RemoveGrain(4,-1)
Median1(pm,  MT_Convolution(horizontal="1",vertical="  0 0 0 1 0 .1 -.1"  ,chroma="copy first"),h4,Chroma="copy first")
Median1(last,MT_Convolution(horizontal="1",vertical="0 0 0 0 1 0 0 .1 -.1",chroma="copy first"),h4,Chroma="copy first")
Contra(last,pm)

########## global motion stabilization
orig = last
temp = orig.TemporalSoften(3,255,255,25,2)
int  = Interleave(temp.Repair(orig),orig)
DePan(int,data=DePanEstimate(int,trust=0,dxmax=1,dymax=0),offset=-1)
SelectEvery(2,0)

episode==5 ? last.Trim(0,92103)++orig.Trim(92104,93601)++last.Trim(93602,0) : last

########## local motion stabilization/degrain stage
source  = last
sigma   = 5
fft     = source.FFT3dFilter(sigma=sigma,sigma2=sigma*.75,sigma3=sigma*.5,sigma4=sigma*.25)

fft.Clense(grey=true)
filt    = Contra(last.Repair(fft,2,-1),last).MergeChroma(source)

idx1    = filt.MSuper(pel=2,sharp=1)
bw_vec1 = MAnalyse(idx1,isb=true, delta=1,overlap=4,plevel=0,dct=1)
fw_vec1 = MAnalyse(idx1,isb=false,delta=1,overlap=4,plevel=0,dct=1)

idx2    = source.MSuper(pel=2,sharp=1,levels=1,chroma=false)
pcorr   = source.MDegrain1(idx2,bw_vec1,fw_vec1,thSAD=800,thSCD1=150,thSCD2=75,plane=0)
corr1   = Median1(source,pcorr,filt,chroma="copy first")

idx3    = corr1.MSuper(pel=2,sharp=1,levels=1,chroma=false)
corr1.MDegrain1(idx3,bw_vec1,fw_vec1,thSAD=400,thSCD1=150,thSCD2=75,plane=0)

Median1(corr1,last,filt,chroma="copy first")

Contra(last,source)

########## restore stars
prest = last
prest.MT_Binarize(threshold=20,upper=true,chroma="copy first").MT_Expand(chroma="copy first")
MT_Merge(prest,source,last,chroma="copy first")

########## additional "Lucasfilm" and "Along time ago..." stabilization
prest.Trim(0,265)++prest.Trim(266,687).TemporalSoften(3,255,255,25,2)++last.Trim(688,0)

########## anti-alias
NNEDI2(dh=true, field=0)
NNEDI2(dh=false,field=1)

########## resize to 16x9 AR, remove sides, add borders
Spline16Resize(728,388).Crop(8,10,-4,-14,align=true).AddBorders(2,58,2,58)

########## subtitle
episode==4 ? ANH(last) : episode==6 ? ROTJ(last) : last

#######################################################################################
Function ANH(clip input)
{input

f     = "Franklin Gothic Medium Cond"
f_col = $EEEEEE
f_wid = 9
f_pos = 464
f_siz = 36

Subtitle ("Going somewhere, Solo?",
\ -1,f_pos,70663,70698,f,f_siz,f_col,font_width=f_wid)
Subtitle ("It’s too late. You should have paid him when you had the chance.",
\ -1,f_pos,70825,70931,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Jabba’s put a price on your head so large...",
\ -1,f_pos,70940,71005,f,f_siz,f_col,font_width=f_wid)
Subtitle ("...every bounty hunter in the galaxy will be looking for you.",
\ -1,f_pos,71014,71088,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I’m lucky I found you first.",
\ -1,f_pos,71098,71137,f,f_siz,f_col,font_width=f_wid)
Subtitle ("If you give it to me, I might forget I found you.",
\ -1,f_pos,71203,71282,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Jabba’s through with you.",
\ -1,f_pos,71365,71406,f,f_siz,f_col,font_width=f_wid)
Subtitle ("He has no time for smugglers...",
\ -1,f_pos,71435,71489,f,f_siz,f_col,font_width=f_wid)
Subtitle ("...who drop their shipments at the first sign of an Imperial cruiser.",
\ -1,f_pos,71498,71595,f,f_siz,f_col,font_width=f_wid)
Subtitle ("You can tell that to Jabba. He may only take your ship.",
\ -1,f_pos,71656,71748,f,f_siz,f_col,font_width=f_wid)
Subtitle ("That’s the idea.",
\ -1,f_pos,71806,71833,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I’ve been looking forward to this for a long time.",
\ -1,f_pos,71843,71931,f,f_siz,f_col,font_width=f_wid)

Return(last)
}

#######################################################################################
Function Contra(clip denoised, clip orig)
{# re-write of Didée's contra sharpening routine from TemporalDegrain.avs

rg12d = MT_MakeDiff(denoised,denoised.RemoveGrain(12,-1))
rg12d.Repair(MT_MakeDiff(orig,denoised),9,-1).MT_LUTxy(rg12d,"x 128 - abs y 128 - abs < x y ?")

denoised.MT_AddDiff(last,chroma="copy first")

Return(last)
}

#######################################################################################
Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
{# median of 3 clips from Helpers.avs by G-force

chroma = Default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"

Interleave(input_1,input_2,input_3)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
SelectEvery(3,1)

chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last

Return(last)
}

#######################################################################################
########################## GOUT Filter By G-force V.15.01 ESB #########################
#######################################################################################

########## setup
Mpeg2Source("C:\Documents and Settings\Owner\Desktop\AviSynth Scripts\VTS_ESB.d2v") # <-----Set path

########## cut off some of the black bars for faster processing (but keep mod 16)
Crop(0,96,0,-96,align=true)

########## black level/gamma, hue
Levels(10,1.08,255,0,255).Tweak(hue=-3)

########## de-ring
drng = last.MT_Convolution(horizontal="1",vertical="-.085 .165 -.185 1 -.185 .165 -.085",chroma="copy first")
drng.MT_Convolution(horizontal="1",vertical="-.1 1 -.1",chroma="copy first")
drng.Trim(0,687)++last.Trim(688,2801)++drng.Trim(2802,0)

########## global motion stabilization
orig = last
temp = orig.TemporalSoften(3,255,255,25,2)
int  = Interleave(temp.Repair(orig),orig)
DePan(int,data=DePanEstimate(int,trust=0,dxmax=1,dymax=0),offset=-1)
SelectEvery(2,0)

last.Trim(0,92103)++orig.Trim(92104,93601)++last.Trim(93602,0)

########## local motion stabilization/degrain stage
source  = last
fft     = source.FFT3dFilter(sigma=5,plane=4)

fft.Clense()
filt    = Contra(last.Repair(fft),last)

idx1    = filt.MSuper(pel=2,sharp=1)
bw_vec1 = MAnalyse(idx1,isb=true, delta=1,overlap=4,plevel=0,dct=1)
fw_vec1 = MAnalyse(idx1,isb=false,delta=1,overlap=4,plevel=0,dct=1)

idx2    = source.MSuper(pel=2,sharp=1,levels=1)
pcorr   = source.MDegrain1(idx2,bw_vec1,fw_vec1,thSAD=800,thSCD1=150,thSCD2=75)
corr1   = Median1(source,pcorr,filt,chroma="process")

idx3    = corr1.MSuper(pel=2,sharp=1,levels=1)
corr1.MDegrain1(idx3,bw_vec1,fw_vec1,thSAD=400,thSCD1=150,thSCD2=75)

Median1(corr1,last,filt,chroma="process")

Contra(last,source)

########## restore stars
prest = last
prest.MT_Binarize(threshold=20,upper=true,chroma="copy first").MT_Expand(chroma="copy first")
MT_Merge(prest,source,last,chroma="copy first")

########## additional "Lucasfilm" and "Along time ago..." stabilization
prest.Trim(0,265)++prest.Trim(266,687).TemporalSoften(3,255,255,25,2)++last.Trim(688,0)

########## anti-alias
NNEDI2(dh=true, field=0)
NNEDI2(dh=false,field=1)

########## resize to 16x9 AR, remove sides, add borders
Spline16Resize(728,388).Crop(8,14,-6,-10,align=true).AddBorders(3,58,3,58)

 


#######################################################################################
Function Contra(clip denoised, clip orig)
{# re-write of Didée's contra sharpening routine from TemporalDegrain.avs

MT_MakeDiff(denoised,denoised.RemoveGrain(12,-1)).Repair(MT_MakeDiff(orig,denoised),9,-1)

denoised.MT_AddDiff(last,chroma="copy first")

Return(last)
}

#######################################################################################
Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
{# median of 3 clips from Helpers.avs by G-force

chroma = Default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"

Interleave(input_1,input_2,input_3)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
SelectEvery(3,1)

chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last

Return(last)

#######################################################################################
################### GOUT Filter By G-force V.15.03 PAL ROTJ to NTSC ###################
#######################################################################################

########## setup
Mpeg2Source("C:\Users\Garica\Desktop\VTS_01_1.d2v") # <-----Set path

########## change framereate (PAL to NTSC)
AssumeFPS(24000,1001)

########## cut off some of the black bars for faster processing (but keep mod 16)
Crop(0,112,0,-112,align=true).AddBorders(8,0,8,0)

########## black level/gamma, hue
Levels(10,1.08,255,0,255).Tweak(hue=-3)

########## global motion stabilization
orig = last
temp = orig.TemporalSoften(3,255,255,25,2)
int  = Interleave(temp.Repair(orig),orig)
DePan(int,data=DePanEstimate(int,trust=0,dxmax=1,dymax=0),offset=-1)
SelectEvery(2,0)

last.Trim(0,92103)++orig.Trim(92104,93601)++last.Trim(93602,0)

########## local motion stabilization/degrain stage
source  = last
fft     = source.FFT3dFilter(sigma=5,plane=4)

fft.Clense()
filt    = Contra(last.Repair(fft),last)

idx1    = filt.MSuper(pel=2,sharp=1)
bw_vec1 = MAnalyse(idx1,isb=true, delta=1,overlap=4,plevel=0,dct=1)
fw_vec1 = MAnalyse(idx1,isb=false,delta=1,overlap=4,plevel=0,dct=1)

idx2    = source.MSuper(pel=2,sharp=1,levels=1)
pcorr   = source.MDegrain1(idx2,bw_vec1,fw_vec1,thSAD=800,thSCD1=150,thSCD2=75)
corr1   = Median1(source,pcorr,filt,chroma="process")

idx3    = corr1.MSuper(pel=2,sharp=1,levels=1)
corr1.MDegrain1(idx3,bw_vec1,fw_vec1,thSAD=400,thSCD1=150,thSCD2=75)

Median1(corr1,last,filt,chroma="process")

Contra(last,source)

########## restore stars
prest = last
prest.MT_Binarize(threshold=20,upper=true,chroma="copy first").MT_Expand(chroma="copy first")
MT_Merge(prest,source,last,chroma="copy first")

########## additional "Lucasfilm" and "Along time ago..." stabilization
prest.Trim(0,265)++prest.Trim(266,687).TemporalSoften(3,255,255,25,2)++last.Trim(688,0)

########## anti-alias
NNEDI2(dh=true, field=0)
NNEDI2(dh=false,field=1)

########## resize to 16x9 AR, remove sides, add borders
Spline16Resize(744,396).Crop(18,16,-12,-16,align=true).AddBorders(3,58,3,58)

########## subtitle
f     = "Franklin Gothic Medium Cond"
f_col = $EEEEEE
f_wid = 9
f_pos = 465
f_siz = 36

Subtitle ("There will be no bargain.",
\ -1,f_pos,14382,14476,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I will not give up my favorite decoration.",
\ -1,f_pos,14538,14706,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I like Captain Solo where he is.",
\ -1,f_pos,14741,14824,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I have come for the bounty on this Wookiee.",
\ -1,f_pos,20524,20626,f,f_siz,f_col,font_width=f_wid)
Subtitle ("At last we have the mighty Chewbacca.",
\ -1,f_pos,20774,20886,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I want fifty thousand. No less.",
\ -1,f_pos,21502,21553,f,f_siz,f_col,font_width=f_wid)
Subtitle ("This bounty hunter is my kind of scum...",
\ -1,f_pos,22554,22663,f,f_siz,f_col,font_width=f_wid)
Subtitle ("...fearless and inventive.",
\ -1,f_pos,22685,22753,f,f_siz,f_col,font_width=f_wid)
Subtitle ("It's too late for that, Solo.",
\ -1,f_pos,28765,28856,f,f_siz,f_col,font_width=f_wid)
Subtitle ("You may have been a good smuggler...",
\ -1,f_pos,28857,28972,f,f_siz,f_col,font_width=f_wid)
Subtitle ("...but now you're Bantha fodder.",
\ -1,f_pos,28973,29058,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Take him away.",
\ -1,f_pos,29224,29273,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Bring her to me.",
\ -1,f_pos,29449,29503,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I'm sure.",
\ -1,f_pos,29750,29796,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I told you not to admit him.",
\ -1,f_pos,33466,33568,f,f_siz,f_col,font_width=f_wid)
Subtitle ("He must be allowed to speak.",
\ -1,f_pos,33615,33684,f,f_siz,f_col,font_width=f_wid)
Subtitle ("You weak-minded fool!",
\ -1,f_pos,33703,33774,f,f_siz,f_col,font_width=f_wid)
Subtitle ("He's using an old Jedi mind trick.",
\ -1,f_pos,33821,33927,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Your mind powers will not work on me, boy.",
\ -1,f_pos,34154,34280,f,f_siz,f_col,font_width=f_wid)
Subtitle ("There will be no bargain, young Jedi.",
\ -1,f_pos,34685,34795,f,f_siz,f_col,font_width=f_wid)
Subtitle ("I shall enjoy watching you die.",
\ -1,f_pos,34824,34910,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Bring me Solo and the Wookiee.",
\ -1,f_pos,39727,39816,f,f_siz,f_col,font_width=f_wid)
Subtitle ("They will all suffer for this outrage.",
\ -1,f_pos,39817,39920,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Soon you will learn to appreciate me.",
\ -1,f_pos,43151,43304,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Move him into position.",
\ -1,f_pos,45220,45288,f,f_siz,f_col,font_width=f_wid)
Subtitle ("Put him in.",
\ -1,f_pos,45866,45922,f,f_siz,f_col,font_width=f_wid)


#######################################################################################
Function Contra(clip denoised, clip orig)
{# re-write of Didée's contra sharpening routine from TemporalDegrain.avs

MT_MakeDiff(denoised,denoised.RemoveGrain(12,-1)).Repair(MT_MakeDiff(orig,denoised),9,-1)

denoised.MT_AddDiff(last,chroma="copy first")

Return(last)
}

#######################################################################################
Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
{# median of 3 clips from Helpers.avs by G-force

chroma = Default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"

Interleave(input_1,input_2,input_3)
chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
SelectEvery(3,1)

chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last

Return(last)
}

Author
Time
Saturation increase? Was this really necessary?

“I love Darth Editous and I’m not ashamed to admit it.” ~ADigitalMan

Author
Time
I think a saturation increase helps - my version had a bit more of a boost (1.15 as opposed to 1.08), but I also included a 6.25° hue rotation towards yellow.

Can't test the script at the moment so I'd be interested in seeing screenshots.

The gate weave, telecine wobble (whatever it's called) has always bugged me since the first time I saw Dr Gonzo's laserdisc rips. The image on the PAL laserdiscs does not wobble so much.

Guidelines for post content and general behaviour: read announcement here

Max. allowable image sizes in signatures: reminder here

Author
Time
Originally posted by: pittrek
Screenshots would be nice


I know! I just didn't think screenshots would do justice to the wobble, so I really want to post some clips. I started to encode some last night, but the script runs too slow due to the fact that in my last script I'm doing a lot of stuff inside the doubled frame size of eedi(2). I have re-arranged the script so it works must faster now. I will update the posted script after work and start encoding.

-G
Author
Time
Originally posted by: g-force
It might, but I have never worked with Vdub. From my unterstanding, DePanStabilize works the same way that DeShaker does, and I know from a LOT of experience that DePanStabilize doesn't work for this at all.

I can't speak for DePanStabilize, but I had a similar application with a huge video restoration project which had almost constant, small wobble. I found a set of DeShaker settings that worked great. You can set limits on the correction, and the zone on the screen on which to base the correction calculation. I'd be glad to share the settings I used, if you want to try it. Vdub is trivial to work with, btw.

"Close the blast doors!"
Puggo’s website | Rescuing Star Wars

Author
Time
I updated the script in my previous post so it runs much faster now.

-G
Author
Time
Are these scripts good for the whole trilogy or just star wars
Author
Time
Do you know what "align=true" does in the crop function? I read a frame can sometimes be placed unaligned in memory after cropping. But I don't known what it means if a frame is unaligned and exactly when it happens. Is it just to improve speed?
Fez: I am so excited about Star Whores.
Hyde: Fezzy, man, it's Star Wars.
Author
Time
Originally posted by: eros
Are these scripts good for the whole trilogy or just star wars

Not sure yet. I hope they will work with all of them with some minor tweaking.

Originally posted by: Arnie.d
Do you know what "align=true" does in the crop function? I read a frame can sometimes be placed unaligned in memory after cropping. But I don't known what it means if a frame is unaligned and exactly when it happens. Is it just to improve speed?


I stole that one from Moth3r. I think you're right though.

So I have encoded a one minute clip that I now need to upload to Rapidshare or something. I'll update soon. BTW, the script is going to need some more tweaking, there are a couple scenes where R2 is rocking back and forth that throw a wrench in the algorithm.

-G
Author
Time
Here it is!

Top is with my script applied, bottom is original.

http://rapidshare.com/files/90535038/stabilize.m2v.html

-G
Author
Time
Wow, looks great. That's a vast improvement.

“I love Darth Editous and I’m not ashamed to admit it.” ~ADigitalMan

Author
Time
Could somebody please re-upload it to some other server, like mediafire.com or megaupload ?
Author
Time
OK, I finally managed to download it.
Looks damned impressive. Why the hell didn't the guys at LFL do it before releasing the 2006 sh*t ?

A quick question - you have used the NTSC version for your script, right ?
Author
Time
g-force,

Did you use the NTSC or the PAL DVD as source?
Was your script modified for your encodings or did you use the script as posted above?

I'm doing some testencodings at the moment but it looks different to your encoding.



Author
Time
Originally posted by: Oldschooljedi
g-force,

Did you use the NTSC or the PAL DVD as source?
Was your script modified for your encodings or did you use the script as posted above?

I'm doing some testencodings at the moment but it looks different to your encoding.

I used the NTSC version. The script is exactly as above, except that I resized it to non-anamorphic at the end, added the original to the bottom of the screen, resized and showed the frame number. How does yours look different?

if you add this to the bottom of the script, you will have exactly what I used to encode.


tv=Lanczos4Resize(720,360) #see what it will really look like on TV
StackVertical(tv,orig)
addborders(120,3,120,3)
Lanczos4Resize(720,480)
ShowFrameNumber

trim(500,-350)+trim(4290,-200)+trim(10900,-300)+trim(26790,-130)+trim(70800,-200)+trim(133550,-60)


If your test encodings look too "tall", that's because the script is streched for anamorphic.

-G

Author
Time
I just finished my new testencoding.

I don't know what was wrong in the script of my first testencoding. The top black bar was wider every few frames and then thinner again.

I did modify your script for the PAL DVD now everything worked fine.

Author
Time
Oops, now I have this error again and need a little help. I did upload a little clip of my encodings:

Link

Could you take a look at it?

Look at the top black bar.

Any ideas what is wrong with the script?

Here it is (modified for PAL-source):

mpeg2source("C:\ANH.d2v")

orig=Crop(0,124,0,-126,align=true)

temp=TemporalSoften(orig,48,255,255,10,2)
source=interleave(temp,orig,temp)

mdata=DePanEstimate(source, range=1, trust=0, dxmax=1, dymax=0)
DePan(source, data=mdata, offset=1)

selectevery(3,2)

a=EEDI2().TurnRight().EEDI2().TurnLeft().trim(0,58642)
b=EEDI2(maxd=15,nt=8).TurnRight().EEDI2(maxd=15,nt=8).TurnLeft().trim(58643,58994) #needed for interrogation scene
c=EEDI2().TurnRight().EEDI2().TurnLeft().trim(58995,0)
a+b+c

FFT3DFilter(sigma=2.5, sharpen=1.7)

Crop(16,0,-8,-2,align=true)

Lanczos4Resize(720,432)

Levels(8,1,255,0,255) #8 is bare minimum to fix "Tie matte scene"
DeSpot(sign=1) #sign=1 removes only black spots and keeps fast motion stars
DeSpot(mscene=0) #mscene=0 removes spots only in very static scenes
#show=1 highlights removed spots
tweak(sat=1.08)
addborders(0,72,0,72)

P.S.:

When I use exactly the script you posted, I get the avisynth-error: "width not a multible of 16", probably because my source is PAL.
Author
Time
Originally posted by: Oldschooljedi
Oops, now I have this error again and need a little help. I did upload a little clip of my encodings:

Link

Could you take a look at it?



I'll have to wait until I get home from work to look at the clip, but a couple ideas come to mind.
1. try resizing to NTSC resolution before the script (just so everything is the same) and then run my script.
2. I know that there are a few different revisions of the DePan and DePanEstimate tools out there. Make sure they are the most recent ones from: http://avisynth.org.ru/depan/depan.html
This sounds very much like what would happen if there was a bug in the dymax not being set to 0 in DePanEstimate.

-G
Author
Time
Ok, now it works. I just finished another encoding.

I used the script that I posted before and now for PAL it worked really good.

The problem was, that I used another depan.dll for the encodings. I did download all my .dll's here:

http://avisynth.org/warpenterprises/

Did you download your needed .dll's here:

http://avisynth.org.ru/

??