View Single Post
Old 5th April 2007, 00:54   #968  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
I added a new filter to mmask.dll called createMM(), which combines mthresh/mmask/andMasks/mcombine. Syntax:

createMM(clip, int type, int nt, int minthresh, int maxthresh, int cstr)

type is from mthresh
nt/minthresh/maxthresh are from mmask
cstr is from mcombine

dis is fixed at 2. The defaults are the same as for the separate filters.

Now things are a little simpler:

bobbing, tff:

topf = separatefields().selecteven().createMM()
botf = separatefields().selectodd().createMM()
tdeint(mode=1,order=1,emask=buildMM(topf,botf,mode=1,order=1,dis=2))

bobbing, bff:

botf = separatefields().selecteven().createMM()
topf = separatefields().selectodd().createMM()
tdeint(mode=1,order=0,emask=buildMM(topf,botf,mode=1,order=0,dis=2))

same rate, keep top field, tff:

topf = separatefields().selecteven().createMM()
botf = separatefields().selectodd().createMM()
tdeint(mode=0,order=1,field=1,emask=buildMM(topf,botf,mode=0,order=1,field=1,dis=2))


@ChiDragon
You're are probably correct. The longer the static period required the more resistant it will be to artifacts from repeated motion. I think a good example of the adaptive threshold in action is src20_ref__525.yuv from http://media.xiph.org/vqeg/TestSeqences/Reference/. TDeint requires mthreshL=13 to get the same level of stability as createMM()+buildMM(), and actually using mthreshL=13 on any material with motion will lead to lots of residual combing and artifacts which you wont get with createMM()+buildMM().

Would you be willing to upload the short sequence you mentioned earlier to my ftp?
12.216.251.99:17262
upload/upload

Last edited by tritical; 5th April 2007 at 01:01.
tritical is offline   Reply With Quote