Home
RecentChanges

Search:

» AviSynth is a powerful video FrameServer for Win32.

AviSynth Links:
»Download
»Learn to script
»FAQ
»Manual
»Discussion fora
»Project page
»External filters
»FeedBack

» You can add pages to this website immediately. No login required.
Edit this document

» AboutAviSynth

 

Avisynth 
Logo

IvtcBlend

When a film clip is converted to 29.97fps video for NTSC broadcast, some of the fields are repeated. The "fast" mode of Layer allows for a very simple blend of two supposedly-identical sources, raising the effective S/N ratio. Put these two facts together and you have an [IvtcBlend function]; the effect is subtle at best on clean sources, and its method deserves a properly generalized plugin for dirty ones, but in the meantime it provides an interesting look at the power of AviSynth.

(of course, one could also argue it demonstrates the necessity for a proper if/then construct :))

function ivtcblend(clip clip, int offset, int "parity")
{
assert(offset>=0 && offset<=4, "Offset must be 0 - 4")
clip=(default(parity,0)==1 ? clip.complementparity():clip)
return(offset==0 ?
\ interleave(clip,clip.layer(clip.trim(1,0),"fast")).separatefields()
\.selectevery(20,4,1,8,7,12,13,18,17).weave():
\ offset==1 ?
\ interleave(clip,clip.layer(clip.trim(1,0),"fast")).separatefields()
\.selectevery(20,2,1,8,5,12,11,16,17).weave():
\ offset==2 ?
\ interleave(clip,clip.layer(clip.trim(1,0),"fast")).separatefields()
\.selectevery(20,0,1,6,5,12,9,16,15).weave():
\ offset==3 ?
\ interleave(clip.duplicateframe(0),clip.duplicateframe(0).layer(clip,"fast"))
\.separatefields().selectevery(20,4,3,8,9,14,13,17,20).weave():
\ interleave(clip,clip.layer(clip.trim(1,0),"fast")).separatefields()
\.selectevery(20,4,3,8,9,14,13,17,20).weave())
}

Back to ShareFunctions.

SourceForge Logo

 


Edit this document | View document history
Document last modified Thu, 12 Dec 2002 04:27:08