niiyan/2007-04-02

mmask(適応型閾値モーションマスク)

  • TDeint と一緒に使用可能。
    • TDeint の emask オプション経由で一緒に動作。
  • mthresh、mmask、mcombine と buildMM、さらに dilate と erode の計 6 つのフィルタを含む。
  • 純粋な C で書かれており、最適化もされていないため、(処理が)やや遅いとのこと。
  • mthresh
    • 書式
      mthresh(clip child, int type)
      
    • 概要
      • フィールドベースのクリップを取り、閾値マップ(a threshold map)を出力する。各ピクセルに対する閾値は 3x3 の近傍に基づく。出力フレームは、垂直方向に入力の 2 倍になる。出力の上半分は 1/4 ピクセルの閾値で、下半分は 1/2 ピクセルの閾値。'type' は、0、1、2 または 3 のいずれか(デフォルトは 1)。type = 2 の場合、閾値はシンプルに次のようになる:
        max(abs(cp-nmin),abs(cp-nmax))*0.25
        max(abs(cp-nmin),abs(cp-nmax))*0.50
        ここで cp は現在のピクセル(current pixel)の値で、nmin/nmax はカレントピクセルの上下左右の近傍の min/max(最小値/最大値)。type=3 は 2 と同じだが、8 つの近傍すべてを考慮する。type = 0 は 2 と同じだが、色差のダウンサンプリングによる距離の差だけでなく、(それがフィールドにすぎないということによって)ライン間の距離の差の 2 倍を補う。type=1 は 3 と同じだが、0 同様の補償を伴う。
  • mmask
    • 書式
      mmask(clip child, clip mask, int type, int nt, int minthresh, int maxthresh)
      
    • 概要
      • mthresh によって出力されるマスクと、mthresh に入力として与えられたフィールドベースのビデオ(各フレームは同じビデオで垂直方向に重ねる必要がある)を取り込む。mmask は、どのピクセルが動いている(0)か静止している(255)か示すマスクを出力する。あるピクセルと他のフレームのピクセルの差が min(cthresh,othresh) より小さいなら、そのピクセルは静止している。cthresh はカレントピクセルに対して mthresh によって決定される閾値で、othresh は他のピクセルに対して mthresh によって決定される閾値。type は 0、1、または 2(デフォルトは 2)。type=0 は前のフレームとの差を取る。type=1 は前のフレーム/次のフレームとの差を取る。type=2 は次のフレームとの差を取る。nt はノイズの閾値(デフォルトは 2)。nt は min(cthresh,othresh) に足される。minthresh は最小の閾値(min(cthresh,othresh) が minthresh より小さい場合、minthresh に増加される)。maxthresh は minthresh と同じように働くが、最大値を設定する(デフォルト 75)。
  • mcombine
    • 書式
      mcombine(clip child, int cstr)
      
    • 概要
      • mmask の出力クリップを取る。まだ垂直方向に 2 倍で、1/4 ピクセルと 1/2 ピクセルのマスクを 1 つのマスクに合成する。あるピクセルが 1/4 ピクセルマスクでは動いているとマークされ、1/2 ピクセルマスクでは静止しているとマークされれば、mcombine は、3x3 近傍の近傍ピクセルのうちの何ピクセルが 1/4 ピクセルマスクにおいてで静止しているとマークされているかを確認する。その近傍ピクセルの数が少なくとも cstr であれば、ピクセルは最終的なマスクで静止しているとみなされる(cstr のデフォルトは 4)。1/4 ピクセルマスクで静止しているとマークされているすべてのピクセルは、最終のマスクでも静止しているとみなされる。
  • buildMM
    • 書式
      buildMM(clip tfields, clip bfields, int mode, int order, int field, int length, int type)
      
    • 概要
      • トップフィールドとボトムフィールドに対応する 2 つのクリップを取る。これらのクリップは、そのビデオのトップフィールドとボトムフィールドそれぞれに mthresh と mmask と mcombine を使用した出力であるべき。buildMM は、mmask() 使用時に type=2 が使われたと仮定する。mode/order/field は、TDeint の同名のパラメータと同じ。TDeint で使うつもりの設定と一致すべき(デフォルト 0/-1/-1)。length は、ピクセルを組み上げる(weave)ための静止フィールドの期間を指定する(4 以上 60 以下でなければならない。デフォルト 8)。'type' は、組み上げ(weave)られようとしているラインの近接する垂直のラインの両方が、静止期間の方向(後方、交差または前方)と一致しなければならないかどうかを指定する。type=0 なら一致しなくてもよい。type = 1 なら一致しなければならない(デフォルト 0)。buildMM の出力は、'emask' パラメータを介して TDeint で使用可能なマスクになる。
  • dilate
    • 書式
      dilate(clip child, int dstr)
      
    • 概要
      • dilate は、8 近傍のうち 'dstr' 以上であるピクセルが 0 でないなら、0 のピクセルを 255 としてマークする。
  • erode
    • 書式
      erode(clip child, int estr)
      
    • 概要
      • erode は、8 近傍のうち 'estr' 以下であるピクセルが 0 でないなら、0 でないピクセルを 0 としてマークする。
  • YV12 または YUY2 で動作。
  • tritical 氏作。
  • 上記の説明は、TDeint and TIVTC - Page 49 - Doom9's Forum における tritical 氏の投稿を参考にまとめたものです。フィルタの説明は、一部を抜き出して日本語に訳したものです。簡易的な訳ですので、詳しくは TDeint and TIVTC - Page 49 - Doom9's Forum を参照してください。
  • 2007-04-03 22:45:51 追記: 新しいバージョンがリリースされました。新たに andMasks フィルタが追加されたほか、mmask と buildMM にも変更が加えられています。詳しくは、niiyan/2007-04-03 を参照してください。

avisynth.nl の従来の Wiki がリードオンリーに

  • AviSynth 公式サイト(http://avisynth.nl/)で利用されてきた従来の Wiki がリードオンリー(閲覧のみ可。編集不可)に変更されたようです。

    Avisynth - Avisynth

    Note: this site is now read-only. For the most up-to-date information, please visit the new Avisynth MediaWiki.(試訳: 注意: このサイトは、今、リードオンリーです。最新の情報を得るには、新しい Avisynth MediaWiki を訪れてください。)

  • この変更が一時的なものかどうかはわかりません。
  • MediaWiki で運用される新しい Wiki へのリンクが貼られていることから、新しい Wiki への完全移行に向けた変更(1 つの段階)である可能性も考えられます。
最終更新日時: 2014-03-12 (水) 23:50:37 (3700d)