Log in

View Full Version : Advice for (worstcase) film restoration needed


tilllt
29th January 2008, 19:33
Hello,

the footage that i need to process was shot by filmstudents in the 60's on B/W Film, at 24fps i assume. I guess they were quite unexperienced, they have a lot of shaky handheld camera & wrong exposure, the images has a lot of frame jitter, it was apparently badly developed (lots of scratches and dust) then they made a telecine (with a lot of Luma Jitter) to Interlaced, 29.97 fps NTSC BetaSP . But thats not all. I am trying to process a (NTSC) DVD now which was made from this material in a Medium Datarate which additionally introduced a lot of compression artifacts due to the chaotic (and badly compressable) nature of the source material. To make it more complex: i also need to convert this material to PAL.

I read several threads about reverse telecine, NTSC to PAL, restoration stuff - but as i am a not very experienced Avisynth User i cannot say if this makes sense, both technically and for the restoration process. Also i would really like to get at least some of that nasty compression blocks out, is that process called "deblocking"? I guess it would be the MVTools for that, no?

maybe someone of you avisynth experts can have a look at this:

MPEG2Source("H:\CONVERSION_dvd\ElGrito\el_grito.d2v")
# Set Field Order
AssumeTFF()

# Reverse Telecine (http://neuron2.net/decomb/decombnew.html)
Telecide(guide=1, post=0)
Decimate(cycle=5)

# Cut out Noise at Edges
letterbox(10,6,6,6)

# Stabilize Luma Flicker (http://avisynth.org.ru/deflicker/deflicker.html)
DeFlicker(scene=30)

# Stabilize Jitter (http://avisynth.org.ru/depan/depan.html)
i = ConvertToYV12()
mdata = DePanEstimate(i)
DePanStabilize(i, data=mdata)

# Remove Scratches (http://avisynth.org.ru/descratch/descratch.html)
DeScratch(mindif=2)

# Speed-Up 24fps to PAL 25fps & Resize to PAL Framesize
assumefps(25,true)
lanczosresize(720,576)

tilllt
30th January 2008, 04:02
i put a sample here:
http://www.khm.de/~tsteinmetz/demo_temp.avi

i recompressed it to xvid but that didnt change the essential problems that i have with this material. would be great if somebody could suggest the right filters / settings to deal with this kind of footage...

ciao

rfmmars
30th January 2008, 07:16
Your clip shows a loss of detail in the very dark areas which nothing can be done but there are two methods that I use, one is a AVS-p script and the other is a Virtualdub filter chain. here's the AVSp script.
..........................................................................................
AVISource("c:\1.vdr.avi")
#ImageSource("c:\train.bmp")
LoadPlugin("c:\AVS\Plugins\AGC.dll")
LoadPlugin("c:\AVS\plugins\removegrain.dll")
LoadPlugin("c:\AVS\Plugins\mt_masktools.dll")
LoadPlugin("c:\AVS\Plugins\warpsharp.dll")
Loadplugin("c:\avs\plugins\gradfun2db.dll")
loadplugin("c:\avs\plugins\DeGrainMedian.dll")
loadplugin("c:\avs\plugins\Smoothdeinterlacer.dll")
LoadPlugin("c:\avs\plugins\Convolution3d.dll")
LoadPlugin("c:\avs\plugins\FFT3DFilter.dll")
LoadPlugin("c:\avs\plugins\VagueDenoiser.dll")
LoadPlugin("c:\avs\plugins\depan.dll")
LoadPlugin("c:\avs\plugins\depanEstimate.dll")
LoadPlugin("c:\AVS\Plugins\repair.dll")
LoadPlugin("c:\AVS\Plugins\masktools.dll")
LoadPlugin("c:\avs\plugins\mvtools.dll")
LoadPlugin("c:\avs\plugins\autolevels.dll")
LoadPlugin("c:\avs\plugins\GrainOpt.dll")
LoadPlugin("c:\avs\plugins\MSU_FRC.dll")
import("c:\avs\seesaw6.avs")
LoadPlugin("c:\avs\plugins\DGbob.dll")
SetMemoryMax(512)

ConvertToYV12()

#Autolevels(filterRadius=8, sceneChgThresh=10,

HDRAGC(avg_lum=128,mode=2,passes=9,shift_u=-16, shift_v=1,protect=2,coef_gain=0.24,max_gain=6.3,corrector=0.89,reducer=2.0,avg_window=16,black_clip=0.46,max_sat=1.56,min_sat=0.18,coef_sat=0.7)

Tweak(-1.692,0.68,-18.36,1.0)

Converttorgb24
RGBadjust(1.0,1.3,1.0)

ConverttoYV12

#SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40)

return last

.............................................................................

The post below will have the AVSp markup

That really the only problem I see is the high contrast harsh look.

I will post the VD chain tomorrow.

Richard
photorecall.net

rfmmars
30th January 2008, 07:21
### AvsP marked script ###
# AVISource("c:\1.vdr.avi")
# #ImageSource("c:\train.bmp")
# LoadPlugin("c:\AVS\Plugins\AGC.dll")
# LoadPlugin("c:\AVS\plugins\removegrain.dll")
# LoadPlugin("c:\AVS\Plugins\mt_masktools.dll")
# LoadPlugin("c:\AVS\Plugins\warpsharp.dll")
# Loadplugin("c:\avs\plugins\gradfun2db.dll")
# loadplugin("c:\avs\plugins\DeGrainMedian.dll")
# loadplugin("c:\avs\plugins\Smoothdeinterlacer.dll")
# LoadPlugin("c:\avs\plugins\Convolution3d.dll")
# LoadPlugin("c:\avs\plugins\FFT3DFilter.dll")
# LoadPlugin("c:\avs\plugins\VagueDenoiser.dll")
# LoadPlugin("c:\avs\plugins\depan.dll")
# LoadPlugin("c:\avs\plugins\depanEstimate.dll")
# LoadPlugin("c:\AVS\Plugins\repair.dll")
# LoadPlugin("c:\AVS\Plugins\masktools.dll")
# LoadPlugin("c:\avs\plugins\mvtools.dll")
# LoadPlugin("c:\avs\plugins\autolevels.dll")
# LoadPlugin("c:\avs\plugins\GrainOpt.dll")
# LoadPlugin("c:\avs\plugins\MSU_FRC.dll")
# import("c:\avs\seesaw6.avs")
# LoadPlugin("c:\avs\plugins\DGbob.dll")
# SetMemoryMax(512)
#
# ConvertToYV12()
#
# [MSU Slow Motion=0]
# MSU_FRC(4, "slow")
# [/MSU Slow Motion]
#
# # [Super Motion=0]
# function MotionProtectedFPS(
# \ clip input, float FPS,
# \ int "mode", int "protection",
# \ int "iterate", int "reset", int "initialise")
# {
# mode = default(mode, warpfast)
# protection = default(protection, 80)
# iterate = default(iterate, 2)
# reset = default(reset, 50)
# initialise = default(initialise, 6)
#
# originalFPS = input.framerate()
# input
#
# mp = temporalsoften(2,4,5,2).FindMotion(iterate = iterate, reset = reset,
# \ initialise = initialise)
# p = MotionFPS(FPS,mode,Motion = mp)
# maskp = mp.SumStretchFPSMask(FPS, protection)
#
# mn = temporalsoften(2,4,5,2).FindMotion(iterate = iterate, reset = reset,
# \ initialise = initialise, from = next)
# n = MotionFPS(FPS,mode,Motion = mn, source = next)
# maskn = mn.SumStretchFPSMask(FPS, protection, source = next)
#
# maskp
# assumeFPS(originalFPS)
# CombineFPS(FPS, maskp, maskn.Invert())
# bilinearresize(width*8, height*8)
# crop(0, 0, input.width(), input.height())
# fity2uv()
#
# maskedmerge(p, n, last, u=3, v=3)
# }
# [/Super Motion]
#
#
#
# GrainOptimizer()
#
#
# [First Invert=0]
# INVERT()
# [/First Invert]
#
# # ConverttoYv12()
#
# Smoothdeinterlace()
#
#
#
# [<separator="AutoLevels">]
#
# Autolevels(filterRadius=[<"Radius(8)", 0, 20, 5>],sceneChgThresh=[<"Threshold(10)", 0, 255, 254>])
#
#
# #Autolevels(filterRadius=8, sceneChgThresh=10,
#
#
#
# [<separator="Refocus>]
#
# function abcxyz(clip clp, int "rad", int "ss")
# {
# ss=([<"Core (1)", 0.00, 2.00, 0.64>]) # radius for supersampling / ss=1.0 -> no supersampling
# rad=([<"Refocus (3)", 0.0, 20.0, 0.9>]) # radius for halo removal
#
#
# ox = clp.width()
# oy = clp.height()
#
# x = clp.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0)
# y = yv12lutxy(clp,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2)
# z1 = repair(clp,y,1)
# maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss))
# minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss))
# z2 = clp.lanczosresize(m4(ox*ss),m4(oy*ss))
# z2 = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy)
#
# return( (ss==1.0) ? z1 : z2 )
# }
# abcxyz()
#
# function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) }
#
#
#
#
# [<separator="DeHalo">]
#
# function abcxyz(clip clp, int "rad", int "ss")
# {
# rad=([<"Radius (3)", -1.0, 20.0, 0.3>]) # radius for halo removal
# ss=([<"Super Sampling (1)", -0.2, 3, 1.2>]) # radius for supersampling / ss=1.0 -> no supersampling
#
# ox = clp.width()
# oy = clp.height()
#
# x = clp.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0)
# y = yv12lutxy(clp,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2)
# z1 = repair(clp,y,1)
# maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss))
# minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss))
# z2 = clp.lanczosresize(m4(ox*ss),m4(oy*ss))
# z2 = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy)
#
# return( (ss==1.0) ? z1 : z2 )
# }
# abcxyz()
#
# function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) }
#
#
#
# ConverttoYUY2()
#
# [HQ Movie=0]
# Convolution3D (preset="movieHQ")
# [/HQ Movie]
#
#
# [LQ Movie=0]
# Convolution3D (preset="movieLQ")
# [/LQ Movie]
#
#
# [Bad Tape=0]
# Convolution3D (0,32,128,16,64,10,0)
# [/Bad Tape]
#
#
# ConvertToYV12()
#
# [Pre-Auto Gain=0]
# colorYUV(autogain=true)
# [/Pre-Auto Gain]
#
#
# [Analyze Input Signal=0]
# colorYUV(analyze=true)
# [/Analyze Input Signal]
#
#
# [Open White balance=0]
# colorYUV(autowhite=true)
# [/Open White balance]
#
#
#
# [<separator="HDRagc">]
#
# HDRAGC(avg_lum=[<"Screen Radial (128)", 128, 2000, 128>],mode=[<"Mode (2)", 0, 2, 2>],passes=[<"Resample (4)", 1, 9, 9>],shift_u=[<"U Color Yel. Blue (0)", -100, +100, -16>], shift_v=[<"V Color Cyan Magenta (0)", -100, +100, 1>],protect=[<"Protect (2)", 0, 2, 2>],coef_gain=[<"Shadow Brightness (1)", 0.00, 0.5, 0.24>],max_gain=[<"Max Level (3)", 0.00, 8, 6.3>],corrector=[<"Corrector ((0)", 0.50, 1.50, 0.89>],reducer=[<"Reducer (0.5)", 0, 2, 2.0>],avg_window=[<"Frames Adverage (30)", 0, 120, 16>],black_clip=[<"Black Clip (0.00)", 0.00, 2.00, 0.46>],max_sat=[<"Max Satuation (9)", 0.00, 4, 1.56>],min_sat=[<"Min Satuation (1)", 0.00, 2, 0.18>],coef_sat=[<"Dark Color Level (1)", 0, 2, 0.7>])
#
#
# [<separator="Color Balance">]
# Tweak([<"Hue (0)", -60.00, 60.00, -1.692>],[<"sat(2)", 0.00, 20.00, 0.68>],[<"Bright", -50.00, 50.00, -18.36>],[<"Cont", 0.00, 2.00, 1.0>])
#
# [<separator="RGB Setup">]
# [RGB Adjust=1]
# Converttorgb24
# RGBadjust([<"Red (0)", 0.00, 2, 1.0>],[<"Green (0)", 0.00, 2, 1.3>],[<"Blue (0)", 0.00, 2, 1.0>])
#
# ConverttoYV12
# [/RGB Adjust]
#
#
#
#
# motion=DepanEstimate(trust=2.5, fftw=true)
# DepanInterleave(data=motion)
# YToUV(fft3dfilter(sigma=3, plane=1).UToY,\
# fft3dfilter(sigma=3, plane=2).VToY,\
# fft3dfilter(sigma=2, plane=0))
# SelectEvery(3,1)
#
#
#
# [Lite Grain=0]
# DeGrainMedian(limitY=2,limitUV=3,mode=0,interlaced=false)
# DeGrainMedian(limitY=2,limitUV=3,mode=1,interlaced=false)
# [/Lite Grain]
#
# [Medium Grain=0]
# DeGrainMedian(limitY=7,limitUV=9,mode=0,interlaced=false)
# DeGrainMedian(limitY=7,limitUV=9,mode=1,interlaced=false)
# [/Medium Grain]
#
#
# [Med-Heavy Grain=0]
# DeGrainMedian(limitY=40,limitUV=56,mode=0,interlaced=false)
# [/Med-Heavy Grain]
#
#
# [Bad Grain=0]
# DeGrainMedian(limitY=20,limitUV=28,mode=0,interlaced=false)
# DeGrainMedian(limitY=20,limitUV=28,mode=1,interlaced=false)
# [/Bad Grain]
#
# [<separator="Noise Reduction 1">]
# [Noise Redution 1=0]
# DeGrainMedian([<"Y-NOISE-1", 0, 255, 20>],[<"UV-NOISE-1", 0, 255, 28>],[<"MODE-1", 0, 5, 0>],interlaced=false)
# [/Noise Redution 1]
# [<separator="Noise Reduction 2">]
# [Noise Reduction 2=0]
# DeGrainMedian([<"Y-NOISE-2", 0, 255, 0>],[<"UV-NOISE-2", 0, 255, 40>],[<"MODE-2", 0, 5, 1>],interlaced=false)
# [/Noise Reduction 2]
#
#
# Function LimitedSharpenFaster( clip clp,
# \ float "ss_x", float "ss_y",
# \ int "dest_x", int "dest_y",
# \ int "Smode" , int "strength", int "radius",
# \ int "Lmode", bool "wide", int "overshoot", int "undershoot",
# \ int "soft", int "edgemode", bool "special",
# \ int "exborder" )
# {
# ox = clp.width
# oy = clp.height
#
# Smode = default( Smode, 3 )
# ss_x = (Smode==4)
# \ ? default( ss_x, 1.25)
# \ : default( ss_x, 1.5 )
# ss_y = (Smode==4)
# \ ? default( ss_y, 1.25)
# \ : default( ss_y, 1.5 )
# dest_x = default( dest_x, ox )
# dest_y = default( dest_y, oy )
# strength = (Smode==1)
# \ ? default( strength, 160 )
# \ : default( strength, 100 )
# strength = (Smode==2&&strength>100) ? 100 : strength
# radius = default( radius, 2 )
# Lmode = default( Lmode, 1 )
# wide = default( wide, false )
# overshoot = default( overshoot, 1)
# undershoot= default( undershoot, overshoot)
# softdec = default( soft, 0 )
# soft = softdec!=-1 ? softdec : sqrt( (((ss_x+ss_y)/2.0-1.0)*100.0) ) * 10
# soft = soft>100 ? 100 : soft
# edgemode = default( edgemode, 0 )
# special = default( special, false )
# exborder = default( exborder, 0)
# #radius = round( radius*(ss_x+ss_y)/2) # If it's you, Mug Funky - feel free to activate it again
# xxs=round(ox*ss_x/8)*8
# yys=round(oy*ss_y/8)*8
# smx=exborder==0?dest_x:round(dest_x/Exborder/4)*4
# smy=exborder==0?dest_y:round(dest_y/Exborder/4)*4
#
# clp.isYV12() ? clp : clp.converttoyv12()
#
# ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : last
# tmp = last
#
# edge = mt_logic( tmp.mt_edge(thY1=0,thY2=255,"8 16 8 0 0 0 -8 -16 -8 4")
# \ ,tmp.mt_edge(thY1=0,thY2=255,"8 0 -8 16 0 -16 8 0 -8 4")
# \ ,"max") .mt_lut("x 128 / 0.86 ^ 255 *") #.levels(0,0.86,128,0,255,false)
#
# tmpsoft = tmp.removegrain(11,-1)
# dark_limit1 = tmp.mt_inpand()
# bright_limit1 = tmp.mt_expand()
# dark_limit = (wide==false) ? dark_limit1 : dark_limit1 .removegrain(20,-1).mt_inpand()
# bright_limit = (wide==false) ? bright_limit1 : bright_limit1.removegrain(20,-1).mt_expand()
# minmaxavg = special==false
# \ ? mt_average(dark_limit1, bright_limit1)
# \ : mt_merge(dark_limit,bright_limit,tmp.removegrain(11,-1),Y=3,U=-128,V=-128)
#
# Str=string(float(strength)/100.0)
# normsharp = Smode==1 ? unsharpmask(strength,radius,0)
# \ : Smode==2 ? sharpen(float(strength)/100.0)
# \ : Smode==3 ? mt_lutxy(tmp,minmaxavg,yexpr="x x y - "+Str+" * +")
# \ : mt_lutxy(tmp,tmpsoft,"x y == x x x y - abs 16 / 1 2 / ^ 16 * "+Str+
# \ " * x y - 2 ^ x y - 2 ^ "+Str+" 100 * 25 / + / * x y - x y - abs / * + ?")
#
# OS = string(overshoot)
# US = string(undershoot)
# mt_lutxy( bright_limit, normsharp, yexpr="y x "+OS+" + < y x y x - "+OS+" - 1 2 / ^ + "+OS+" + ?")
# mt_lutxy( dark_limit, last, yexpr="y x "+US+" - > y x x y - "+US+" - 1 2 / ^ - "+US+" - ?")
#
# Lmode==1 ? mt_clamp(normsharp, bright_limit, dark_limit, overshoot, undershoot) : last
#
# normal = last
# zero = mt_clamp(normsharp, bright_limit, dark_limit, 0,0)
#
# Lmode==3 ? mt_merge(normal,zero,edge.mt_inflate()) : normal
#
# edgemode==0 ? last
# \ : edgemode==1 ? mt_merge(tmp,last,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1)
# \ : mt_merge(last,tmp,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1)
#
# AMNT = string(soft)
# AMNT2 = string(100-soft)
# sharpdiff=mt_makediff(tmp,last)
# sharpdiff2=mt_lutxy(sharpdiff,sharpdiff.removegrain(19,-1),
# \ "x 128 - abs y 128 - abs > y "+AMNT+" * x "+AMNT2+" * + 100 / x ?")
#
# soft==0 ? last : mt_makediff(tmp,sharpdiff2)
#
# (ss_x != 1.0 || ss_y != 1.0)
# \ || (dest_x != ox || dest_y != oy) ? lanczosresize(dest_x,dest_y) : last
#
# ex=blankclip(last,width=smx,height=smy,color=$FFFFFF).addborders(2,2,2,2).coloryuv(levels="TV->PC")
# \.blur(1.3).mt_inpand().blur(1.3).bicubicresize(dest_x,dest_y,1.0,.0)
# tmp = clp.lanczosresize(dest_x,dest_y)
#
# clp.isYV12() ? ( exborder==0 ? tmp.mergeluma(last)
# \ : mt_merge(tmp,last,ex,Y=3,U=1,V=1) )
# \ : ( exborder==0 ? tmp.mergeluma(last.converttoyuy2())
# \ : tmp.mergeluma( mt_merge(tmp.converttoyv12(),last,ex,Y=3,U=1,V=1)
# \ .converttoyuy2()) )
#
# (edgemode!= -1) ? last : edge.lanczosresize(dest_x,dest_y).greyscale
#
# }
#
# [<separator="Sharping">]
# LimitedSharpenFaster(Smode=1, ss_x=2.0, ss_y=2.0,strength=[<"Sharpness (400)", 0, 2400, 407>],overshoot=[<"OverShoot (0)", 0, 6, 0>])
#
#
#
# [Post-Auto Gain=0]
# colorYUV(autogain=true)
# [/Post-Auto Gain]
#
# [White Balance=0]
# colorYUV(autowhite=true)
# [/White Balance]
#
#
# [Analyze Signal Output=0]
# colorYUV(analyze=true)
# [/Analyze Signal Output]
#
#
# [<separator="SeeSaw">]
#
# SetMTmode(2,2)
# SeeSaw( NRlimit=10,NRlimit2=5, Sstr=[<"Sstr(1.5)", .1, 10, 5.0>],Slimit=9,Spower=9, Szp=[<"Spz(16)", .1, 30, 18.0>],sootheT=80, bias=[<"Bias(40)", .1, 80, 80.0>] )
# [/SeeSaw 1]
#
#
# #[SeeSaw=0]
# #SetMTmode(2,2)
# #[<separator="SeeSaw">]
# #SeeSaw(NRlimit=[<"NR-Limit(4)",.1,10,4>],NRlimit2=[<"NR-Limit2(5)", .1, 10, 4>], Sstr=[<"Sstr(1.5)",.1,10,1.5>], Slimit=[<"Slimit(9)",.1,20,9>], Spower=[<"Spower(9)",.1,20,9>], #Szp=[<"Spz(16)",.1,30,16>], sootheT=[<"smootheT(8)",.1,20,8>], bias=[<"Bias(40)",.1,80,40>] )
# #
#
#
# [<separator="SeeSaw Boost 2">]
# [SeeSaw 2=0]
# SetMTmode(2,2)
# SeeSaw( NRlimit=10,NRlimit2=5, Sstr=[<"SstrT(1.5)", .1, 10, 8.3>],Slimit=9,Spower=9, Szp=[<"SpzT(16)", .1, 30, 23.0>],sootheT=80, bias=[<"BiasT(40)", .1, 80, 7.6>] )
# [/SeeSaw 2]
#
# #SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40)
#
#
# [MiniDVD-Camcorder=0]
# complementparity
# separatefields
# #AssumeFrameBased
# #AssumeFieldBased
# #SwapFields
# bob()
# [/MiniDVD-Camcorder]
#
# [MiniDVD-Camcorder 2=0]
# complementparity
# #separatefields
# #AssumeFrameBased
# AssumeFieldBased
# #SwapFields
# DGbob(order=1)
#
# [/MiniDVD-Camcorder 2]
#
# [Invert Video=0]
# INVERT()
# [/Invert Video]
# return last
### AvsP marked script ###

Richard
photorecall.net

rfmmars
30th January 2008, 19:57
This is the last filter chain that I used for film restoration, you will want to reset all of the values for your clip
..................................................................................
VirtualDub.audio.SetSource(1);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompression();
VirtualDub.audio.EnableFilterGraph(0);
VirtualDub.video.SetInputFormat(0);
VirtualDub.video.SetOutputFormat(7);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetSmartRendering(0);
VirtualDub.video.SetPreserveEmptyFrames(0);
VirtualDub.video.SetFrameRate2(0,0,1);
VirtualDub.video.SetIVTC(0,0,-1,0);
VirtualDub.video.SetCompression();
VirtualDub.video.filters.Clear();
VirtualDub.video.filters.Add("Deinterlace 'Muksun'");
VirtualDub.video.filters.instance[0].Config(150);
VirtualDub.video.filters.Add("Stable video v1.0 alpha");
VirtualDub.video.filters.instance[1].Config(4, 4691195);
VirtualDub.video.filters.Add("MSU SmartBrightness 1.01");
VirtualDub.video.filters.instance[2].Config(0, 114, -32, 0);
VirtualDub.video.filters.instance[2].SetEnabled(false);
VirtualDub.video.filters.Add("RGB Equalizer(2.11)");
VirtualDub.video.filters.instance[3].Config("€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ÿ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‡€€€€€€€€•€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†€„€‚„€‚„€‚„€‚„€‚„€‚„€‚„€‚„€‘„€‚„€");
VirtualDub.video.filters.Add("ffvdub");
VirtualDub.video.filters.instance[4].Config2(1700,"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");
VirtualDub.video.filters.Add("dynamic noise reduction (MMX)");
VirtualDub.video.filters.instance[5].Config (31);
VirtualDub.video.filters.instance[5].SetEnabled(false);
VirtualDub.video.filters.Add("Color Mill(2.1)");
VirtualDub.video.filters.instance[6].Config(25700, 25700, 25700, 25700, 25956, 25700, 25700, 28772, 28784, 25692, 25700, 25700, 25700, 1124, 4101);
VirtualDub.audio.filters.Clear();
...........................................................

EDIT: Must use Virtualdub 1.7.10 exp

Richard
photorecall.net

tilllt
31st January 2008, 01:34
it took me a while to find download and install all the filters you mentioned. For the virtualDub filterchain: I couldnt find the version you mentioned (1.7.10) - the newest i found was 1.7.7 - but this keeps crashing when i open your settings file... where do i get 1.7.10?

now i'll to understand the avs process you mentioned. thank you very much so far. i will report if i have some results.

foxyshadis
31st January 2008, 06:53
Really? The latest is always at virtualdub.org.

Placio74
31st January 2008, 07:47
...
EDIT: Must use Virtualdub 1.7.10 exp
1.7.X test10?
Links to latest test version is accessible in this topic (http://forums.virtualdub.org/index.php?act=ST&f=15&t=14715).
Actual test version it's 1.8.0 test2 (1.8.0-prerelease (build 29270)).

On virtualdub.org site (or just here (https://sourceforge.net/projects/virtualdub/)) - latest stable version (actual 1.7.7 (build 28312)).

tilllt
31st January 2008, 07:48
probably i am blind or something but the newest i can find is 1.7.7 stable...
edit: ah i was too late, there is the explanation... thank you

rfmmars
31st January 2008, 08:44
it took me a while to find download and install all the filters you mentioned. For the virtualDub filterchain: I couldnt find the version you mentioned (1.7.10) - the newest i found was 1.7.7 - but this keeps crashing when i open your settings file... where do i get 1.7.10?

now i'll to understand the avs process you mentioned. thank you very much so far. i will report if i have some results.

The VD I used iwas an experamental version, now replaced by 1.8.1-test

Hers the link.

http://www.virtualdub.org/beta/VirtualDub-1.8.0-test1.zip

If it is crashing try deleting a filter one at a time. Also the reason it may be crashing is in the exp. version, there is a check box to turn off and on a filter, and the regular version doesn't have it as far as I know and that maybe why it crashes.

Richard
photorecall.net

tilllt
31st January 2008, 20:50
please excuse another stupid question but who the heck do i get the AVSp Markup Code back into AVSp? thank you.

rfmmars
1st February 2008, 02:21
please excuse another stupid question but who the heck do i get the AVSp Markup Code back into AVSp? thank you.

You need to combine my two posts as one AVS.

If you can't do it e-mail me at

rfmmars@cox.net

Richard
photorecall.net