Quantcast Avisynth: Bad Interlaced Source? - Page 2 - digitalFAQ.com Forums [Archives]
  #21  
05-01-2009, 05:44 PM
Dialhot Dialhot is offline
Free Member
 
Join Date: May 2003
Posts: 10,463
Thanks: 0
Thanked 0 Times in 0 Posts
It seems so
Thanks.

(ouch... poor dog).
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Site Staff / Ad Manager
 
Join Date: Dec 2002
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #22  
05-02-2009, 11:45 AM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by tengo6dedos
The autolevel was very good for this source, but even if your not satisfied you can use the "manual level" output that the script has

The stabiliser also is very good, the typical vhs shake is completely gone



Saluts
Impressive
Reply With Quote
  #23  
05-04-2009, 10:35 PM
tengo6dedos tengo6dedos is offline
Free Member
 
Join Date: Mar 2008
Location: Tierra del Fuego, Chile
Posts: 121
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by kwag
Impressive
yep it is, nice to see someone else arround here

Quote:
Originally Posted by Dialhot
(ouch... poor dog).
if you ever looking for a sublime acoustic sound, look for alice in chains - unplugged




saluts
Reply With Quote
  #24  
09-18-2009, 06:52 PM
tengo6dedos tengo6dedos is offline
Free Member
 
Join Date: Mar 2008
Location: Tierra del Fuego, Chile
Posts: 121
Thanks: 0
Thanked 0 Times in 0 Posts
Theres a new updated version of this script. The code is cleaned up and the script needs less plugins now.
Both sharpening and denoising are improved too.




Code:
# film restoration script by videoFred.
# denoising, resizing, stabilising, sharpening, auto-levels and auto-white balance.
# this script needs progressive input and no duplicate frames
#====================================================================================


film="C:\Program Files\PureBasic430\_test files\Nuova cartella\movie_agk.avi" # you must specify the full path of your source file here



#GENERAL PARAMETERS
#--------------------------------
result="result3" # specify the wanted output here 

trim_begin=90  trim_end=6   play_speed=18   #trim frames and play speed (PAL: 16.6666 or 18.75)

numerator= 18  #numerator for the interpolator (final frame rate)
denumerator= 1 #denumerator  example: 60000/1001= 59.94fps


#COLOR AND LEVELS PARAMATERS
#--------------------------------
saturation=1.6   #for all outputs

gamma=0.8 # for all outputs 

blue= -0  red=0  #manual color adjustment, when returning result3. Values can be positive or negative

AGC_max_sat=1.2  AGC_max_gain=2.8  #improves shadows and colors, for all outputs

black_level=0  white_level=255 output_black=0  output_white=255 # manual levels, when returning result4
 

#SIZE, CROP AND BORDERS PARAMETERS
#--------------------------------
CLeft=20  CTop=20  CRight=20  CBottom=20  #crop values after Depan and before final resizing 

W=768  H=576 #final size after cropping 

bord_left=0  bord_top=0  bord_right=0  bord_bot=0  #720p= borders 150


#STABILISING PARAMETERS
#--------------------------------
maxstabH=20 
maxstabV=20 #maximum values for the stabiliser (in pixels) 20 is a good start value

est_left=20   est_top=20  est_right=20  est_bottom=20  est_cont=1.0  #crop and contast values for special Estimate clip


#DENOISING PARAMETERS
#--------------------------------
PRE_sharp_ness= 80   PRE_radi_us= 3  #presharpening (UnsharpMask) before any denoising

denoising_strenght=800  #denoising level of first denoiser: MVDegrainMulti() 
denoising_frames= 3  #number of frames for averaging (forwards and backwards) 3 is a good start value
block_size= 16  #block size of MVDegrainMulti()
block_over= 8  #block overlapping of MVDegrainMulti()

second_denoising_strenght= 300 #denoising level of second denoiser: MDegrain1()

over_lay= 0.4 # mix back from the original grain over the denoised picture, only when returning result6


#TWO STEP SHARPENING PARAMETERS
#------------------------------------
LSF_sharp_ness=200 LSF_radi_us=2  LSF_sub=1.5 #first sharpening parameters (LimitedSharpenFaster) sub=subsampling

USM_sharp_ness2= 30    USM_radi_us2=1  USM_thres_hold2=0  #second sharpening parameters (UnsharpMask)


#AUTO LEVELS PARAMETER
#------------------------------------
X=4   # X is a special parameter for reducing the autolevels effect on the whites
X2=4  # X2 is a special parameter for reducing the autolevels effest on the blacks 


#DIGITAL GRAIN PARAMETERS
#------------------------------------
grain_luma=0  grain_chroma=0 # this will add some digital grain to the final result, set it to zero if you do not want it.




# END VARIABLES, BEGIN SCRIPT
#=================================================================================================================================


SetMemoryMax(800)  #set this to 1/3 of the available memory

## the needed plugins:
#-----------------------
Loadplugin("Depan.dll")
LoadPlugin("Deflicker.dll")
LoadPlugin("DepanEstimate.dll")
LoadPlugin("AGC.dll")
LoadPlugin("MVTools.dll")
LoadPlugin("MVTools2.dll")
LoadPlugin("autolevels.dll")
LoadPlugin("AddGrainC.dll")

## needed to use limitedsharpenfaster():
#---------------------------------------
Import("LimitedSharpenFaster.avs")
LoadPlugIn("LimitedSupport_09Jan06B.dll")
Loadplugin("mt_masktools.dll")
Loadplugin("warpsharp.dll")
Loadplugin("removegrain.dll")






source1= Avisource(film).assumefps(play_speed).trim(trim_begin,0).converttoYV12()




#STABILIZING
#....................................................................................................................................................................
stab_reference= source1.crop(est_left,est_top,-est_right,-est_bottom).tweak(cont=est_cont).MT_binarize(threshold=80).greyscale().invert()

mdata=DePanEstimate(stab_reference,trust=1.0,dxmax=maxstabH,dymax=maxstabV)
stab=DePanStabilize(source1,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=1,mirror=15)
stab2= stab.crop(CLeft,CTop,-CRight,-CBottom).deflicker(border=20)
stab3=DePanStabilize(source1,data=mdata,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=1,info=true)

WS= width(stab)
HS= height(stab)
stab4= stab3.addborders(10,10,10,10,$B1B1B1).Lanczos4Resize(WS,HS)
stab5= Lanczos4Resize(stab2,W,H).sharpen(0.5)


#DENOISING
#...................................................................................................................................................................

pref= stab2.blur(1.0).blur(1.0).tweak(sat=2.5)
noise_baseclip= stab2.sharpen(0.6).unsharpmask(PRE_sharp_ness,PRE_radi_us,0).coloryuv(off_U=blue,off_V=red).tweak(sat=saturation)


vectors= pref.MVAnalyseMulti(refframes=denoising_frames, pel=2, blksize=block_size, overlap=block_over, idx=1)
denoised= noise_baseclip.MVDegrainMulti(vectors, thSAD=denoising_strenght, SadMode=1, idx=1)


#HDRAGC
#...................................................................................................................................................................


leveled= denoised.HDRAGC(coef_gain=2.0,max_gain=AGC_max_gain,min_gain=0.5,max_sat=AGC_max_sat,shadows=true)


#SHARPENING
#...................................................................................................................................................................
sharp1=limitedSharpenFaster(leveled,smode=1,strength=LSF_sharp_ness,overshoot=50,radius=LSF_radi_us, ss_X=LSF_sub, SS_Y=LSF_sub, dest_x=W,dest_y=H)



super= sharp1.MSuper(pel=2)
backward_vec= MAnalyse(super,blksize=block_size, overlap=block_over, isb=true)
forward_vec= MAnalyse(super,blksize=block_size, overlap=block_over, isb= false)


denoised2= sharp1.MDegrain1(super, backward_vec,forward_vec,thSAD= second_denoising_strenght)

interpolated= denoised2.MFlowFps(super, backward_vec, forward_vec, num=numerator, den= denumerator, ml=100)

sharp3= unsharpmask(interpolated,USM_sharp_ness2,USM_radi_us2,USM_thres_hold2).addgrainC(grain_luma,grain_chroma,0.2,0.2,5)





#RESULT1: AUTOLEVELS,AUTOWHITE
#......................................................................................................................................................................
result1= sharp3.coloryuv(autowhite=true).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).levels(0,gamma,255,0,255).autolevels().crop(X,0,-X2,-0).addborders(bord_left, bord_top, bord_right, bord_bot)

#RESULT2: MANUAL LEVELS, AUTOWHITE
#......................................................................................................................................................................
result2= sharp3.levels(black_level,gamma,white_level,0,255).coloryuv(autowhite=true).addborders(bord_left, bord_top, bord_right, bord_bot)

#RESULT3: AUTOLEVELS, MANUAL COLOR CORRECTIONS
#.....................................................................................................................................................................
result3= sharp3.levels(0,gamma,255,0,255).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels().crop(X,0,-X2,-0).addborders(bord_left, bord_top, bord_right, bord_bot)#.changefps(59.94)

#RESULT4: MANUAL LEVELS, MANUAL COLOR CORRECTIONS
#.....................................................................................................................................................................
result4= sharp3.coloryuv(off_U=blue,off_V=red).levels(black_level,gamma,white_level,0,255).addborders(bord_left, bord_top, bord_right, bord_bot)

#RESULT5: SPECIAL SERVICE CLIP FOR RESULT 7
#.....................................................................................................................................................................
result5= overlay(source1,stab_reference,x=est_left,y=est_top).addborders(2,2,2,2,$FFFFFF).Lanczos4Resize(WS,HS)

#RESULT6: OVERLAY: RESULT3 OVER THE (STABILIZED)ORIGINAL
#.......................................................................................................................................................
result6= overlay(result3,stab5,opacity=over_lay).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels().crop(X,0,-X2,-0).addborders(bord_left, bord_top, bord_right, bord_bot)#.changefps(59.94)



#PARAMETERS FOR THE COMPARISONS
#.....................................................................................................................................................................
W2= W+bord_left+bord_right
H2= H+bord_top+bord_bot



#source2=Lanczos4Resize(source1,W2,H2)
#source3=Lanczos4Resize(source1,W,H)
final_framerate= numerator/denumerator
source4=Lanczos4Resize(source1,W2,H2).changeFPS(final_framerate)



#COMPARISONS: ORIGINAL VS RESULTS
#......................................................................................................................................................................
resultS1= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result1,"autolevels, autowhite",size=28,align=2))
resultS2= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result2,"autowhite, manual levels correction",size=28,align=2))
resultS3= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result3,"processed: deflickered, degrained, sharpened etc..",size=28,align=2))
resultS4= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result4,"manual colors and levels correction",size=28,align=2))
resultS6= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result6,"overlay: result3 over original",size=28,align=2))




#SPECIAL COMPARISON CLIP FOR TESTING THE STABILIZER
#.........................................................................................................................................................................
result7= stackhorizontal(subtitle(result5,"baseclip for stabiliser -only the B/W clip is used",size=32,align=2),subtitle(stab4,"test stabiliser: dx=horizontal, dy=vertical",size=32,align=5))


Eval(result)



Here a link with all the plugins and avs needed:
http://www.64k.it/andres/data/f/film...ration_v03.rar

Saluts
Reply With Quote
  #25  
09-18-2009, 09:32 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Reply With Quote
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
Is my PAL DVD Source Interlaced? Zyphon Video Encoding and Conversion 31 06-11-2005 04:20 PM
Avisynth: Interlaced Source Optimal Script? Anonymous Avisynth Scripting 4 09-08-2003 06:03 AM
Framerate und Interlaced Source zaks Video Konvertierung und Encodieren (Deutsch) 9 09-05-2003 06:55 AM
Why use KVCD for interlaced source instead of KDVD? FredThompson Video Encoding and Conversion 4 07-02-2003 03:28 PM
Avisynth: Ntsc interlaced source and avs 2.52? J-Wo Avisynth Scripting 2 06-04-2003 11:32 AM

Thread Tools



 
All times are GMT -5. The time now is 08:00 AM  —  vBulletin © Jelsoft Enterprises Ltd