Advertisement
torchlight

ivtc_txt60mc and friends

Dec 17th, 2014
1,090
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # original: http://forum.doom9.org/showthread.php?p=1466105#post1466105
  2.  
  3. # frame_ref = start of clean-combed-combed-clean-clean pattern
  4. Function ivtc_txt60mc (clip src, int frame_ref, bool "srcbob", bool "draft")
  5. {
  6.     srcbob    = Default (srcbob, false)
  7.     draft     = Default (draft,  false)
  8.  
  9.     field_ref = (srcbob) ? frame_ref : frame_ref * 2
  10.     field_ref =      field_ref  % 5
  11.     invpos    = (5 - field_ref) % 5
  12.     pel       = (draft) ? 1 : 2
  13.  
  14.     src
  15.       (srcbob) ? last
  16. \   : (draft ) ? Bob ()
  17. \   :            QTGMC (SourceMatch=3, Lossless=2, tr0=1, tr1=1, tr2=1)
  18.  
  19.     clean  = SelectEvery (5, 1 - invpos)
  20.     jitter = SelectEvery (5, 3 - invpos, 4 - invpos)
  21.     jsup   = jitter.MSuper (pel=pel)
  22.     vect_f = jsup.MAnalyse (isb=false, delta=1, overlap=4)
  23.     vect_b = jsup.MAnalyse (isb=true,  delta=1, overlap=4)
  24.     comp   = jitter.MFlowInter (jsup, vect_b, vect_f, time=50, thSCD1=400)
  25.     fixed  = comp.SelectEvery (2, 0)
  26.     Interleave (clean, fixed)
  27.     Trim (invpos / 2, 0)
  28. }
  29.  
  30. # frame_ref = start of AABCD pattern
  31. Function dec_txt60mc (clip src, int frame_ref, bool "srcbob", bool "draft")
  32. {
  33.     srcbob    = Default (srcbob, false)
  34.     draft     = Default (draft,  false)
  35.  
  36.     field_ref = (srcbob) ? frame_ref : frame_ref * 2
  37.     field_ref =      field_ref  % 5
  38.     invpos    = (5 - field_ref) % 5
  39.     pel       = (draft) ? 1 : 2
  40.  
  41.     src
  42.       (srcbob) ? last
  43. \   : (draft ) ? Bob ()
  44. \   :            QTGMC (SourceMatch=3, Lossless=2, tr0=1, tr1=1, tr2=1)
  45.  
  46.     clean  = SelectEvery (5, 4 - invpos)
  47.     jitter = SelectEvery (5, 1 - invpos, 2 - invpos)
  48.     jsup   = jitter.MSuper (pel=pel)
  49.     vect_f = jsup.MAnalyse (isb=false, delta=1, overlap=4)
  50.     vect_b = jsup.MAnalyse (isb=true,  delta=1, overlap=4)
  51.     comp   = jitter.MFlowInter (jsup, vect_b, vect_f, time=50, thSCD1=400)
  52.     fixed  = comp.SelectEvery (2, 0)
  53.     Interleave (fixed, clean)
  54.     Trim (invpos / 3, 0)
  55. }
  56.  
  57. # frame_ref = start of clean-combed-combed-clean-clean pattern
  58. # written independently of and without reference to http://pastebin.com/vQX1pDPF
  59. # needs ApplyEvery (for DeleteEvery() and InterleaveEvery())
  60. Function ivtc_txt30mc_t (clip src, int frame_ref, bool "srcbob", bool "draft")
  61. {
  62.     srcbob    = Default (srcbob, false)
  63.     draft     = Default (draft,  false)
  64.  
  65.     field_ref = (srcbob) ? frame_ref : frame_ref * 2
  66.     field_ref =       field_ref  % 10
  67.     invpos    = (10 - field_ref) % 10
  68.     frame_ref = ( 3 * field_ref) % 5
  69.     pel       = (draft) ? 1 : 2
  70.  
  71.     src
  72.       (srcbob) ? last
  73. \   : (draft ) ? Bob ()
  74. \   :            QTGMC (SourceMatch=3, Lossless=2, tr0=1, tr1=1, tr2=1)
  75.  
  76.     src = (srcbob) ? SeparateFields ().SelectEvery (4, 0, 3).Weave () : src
  77.  
  78.     clean  = src.SelectEvery (5, -1 - invpos/2)
  79.     jitter = SelectEvery (1, -1 - invpos).DeleteEvery (10, 8).AssumeFPS (9)
  80.     jsup   = jitter.MSuper (pel=pel)
  81.     vect_f = jsup.MAnalyse (isb=false, delta=1, overlap=4)
  82.     vect_b = jsup.MAnalyse (isb=true,  delta=1, overlap=4)
  83.     comp   = jitter.MFlowFPS (jsup, vect_b, vect_f, num=4, den=1, thSCD1=400)
  84.     fixed  = comp.SelectEvery (4, 1, 2, 3)
  85.     InterleaveEvery (clean, fixed, 4, 1, 2, 3)
  86.     Trim (Select(invpos / 2, 1, 2, 3, 3, 4), 0)
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement