お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

RemoveDirt 0.6

■RemoveDirt 0.6

RemoveDirtがバージョンアップしています。
主な変更点は次のような感じ・・・らしい。
  • RemoveDirtフィルタ自身に変更なし
  • プリセットの追加(RemoveDirt.ini使用)
  • ImproveSceneSwitchフィルタの追加(時間軸フィルタと組み合わせて使うと急激なシーンチェンジで有用)
  • ImproveSceneSwitchの書式は次の通り(パラメータの順番が正しいかどうか不明)。
    ImproveSceneSwitch(clip, orig, int ratio, bool extrapolate, bool first, bool last, int field, bool debug)
    基本的には「ImproveSceneSwitch(時間軸フィルタをかけたクリップ, オリジナルのクリップ)」という感じで使うようです。RemoveDirtのHPの下の方に使用例があるので、詳しくはそちらを見てください。

    各パラメータの意味は、たぶんこんな感じ。
  • field:0でフレーム全体(デフォルト)、1でトップフィールド、2でボトムフィールドをフレーム差分の計算対象とする。
  • ratio:シーンチェンジ検出の感度。整数で1~100まで(デフォルトは7)。
  • first/last:falseならシーンチェンジと判断しても、シーンの最初のフレーム/最後のフレームを変化させない。
  • extrapolation:trueでシーンチェンジの検出に外挿法(extrapolation)を使用。デフォルトはfalse。
  • なお、ImproveSceneSwitchフィルタは、次期AlignFieldプラグインに搭載され、その際、RemoveDirtプラグインからは削除される予定だそうです。
    Dirt Removal in Movies(by Rainer Wittmann)
    http://www.removedirt.de.tf/

    RemoveDirt 0.5

    ■RemoveDirt 0.5

    RemoveDirt 0.5がリリースされました。
    RemoveDirt
    http://www.removedirt.de.tf/
    今回からRemoveDirt.dll(動的リンク)とRemoveDirtS.dll(静的リンク)の二種類が同梱されています。

    まずRemoveDirt.dllを使ってみて(msvcr70.dllが必要)、うまく動かなかったらRemoveDirtS.dllを使うということらしいです。

    両方を同時にプラグインディレクトリに入れてはいけないとのこと。

    その他のver.0.5での変更点は(たぶん)こんな感じ。
    1.cthreshold(色差用ポストプロセス)の追加。デフォルトはpthreshold。YV12のみ。
    2.AVISource使用時の不具合修正
    3.メモリリークの修正
    4.SSE非搭載CPUへの対応
    5.greyオプションでの不具合修正
    6.oscillation(振幅)のチェックをデフォルトで無効に
    7.ドキュメントの修正
    この変更に合わせて、前回の投稿を修正しました。
    以下、修正記事です。


    ○書式

    RemoveDirt(clip clip, clip neighbour, int dist, int mthreshold,
    \ int athreshold, int pthreshold, int cthreshold,
    \ int soscillation, int doscillation, int tolerance ,
    \ int mode, bool grey, bool debug, int show)

    ※順番不明



    ○パラメータ

    [ノイズ検出関連]
    pthreshold:輝度ポストプロセスのしきい値(デフォルト50)
    cthreshold:色差ポストプロセスのしきい値(デフォルトpthreshold,YV12のみ)
    soscillation:この値を超えるピクセルを選択し、振幅を計算(デフォルト50)
    doscillation:振幅がこの値を超えていたら、ノイズ除去をやめる(デフォルト260)


    [動き検出関連]
    mthreshold:動き検出のしきい値(デフォルト150)
    athreshold:適用度のしきい値(デフォルト50)
    dist:範囲。1/近傍9pixel,2/近傍25pixel...(デフォルト1)
    tolerance:許容度。motionブロックの%がこの値を超えるとノイズ除去なし(デフォルト12)
    neighbour:反復処理用比較対象クリップ(デフォルトclip)


    [ノイズ除去のモード用の変数]
    mode:0はシンプルな平均化。1は0と2の中間(実験的)。速さは0>2>1(デフォルト2)


    [白黒クリップ用]
    grey:デフォルトはfalse


    [デバッグ関連]
    debug:trueでdebugviewユーティリティ用のデバッグ出力(デフォルトfalse)
    show:1でノイズ除去済みブロックを、2でノイズ除去されていないブロックを赤く表示。
    YUY2のみ(デフォルト0)



    ○注意点

    Avisynthスレの81さんがまとめておられたのをパク…(略)
    1. RemoveDirtのあとにCropしないこと
    2. Cropするなら"align=true"(AviSynth2.5.3以降)で
    3. 24fpsものはRemoveDirtの前に逆テレシネしておかないとダメ
    4. 他のフィルタはRemoveDirtより後に


    ○RemoveDirt簡易版(関数)

    使い勝手が微妙っぽいので(失礼)、デバッグ関係とかのパラメータを省略して関数化してみました。名前に反して、あまりシンプルじゃありません(笑)

    neighbour/grey/debug/showを省略(デフォルト値適用)し、mode=2に固定しています。

    ちなみにこれも試していませんので・・・(^^;

    ※前回からの変更点
    ・cthresholdを追加(デフォルトはpthreshold)。
    ・doscillationのデフォルト値の変更。
    ・cthresholdは省略しやすいように一番最後に変更。


    [書式]
    SimpleRemoveDirt(dist, mthreshold, athreshold, pthreshold, soscillation, doscillation, tolerance, cthreshold)


    [例]
    SimpleRemoveDirt(1, 150, 50, 50, 50, 260, 12, 50)


    [関数]
    function SimpleRemoveDirt(clip clip, int "dist", int "mthreshold",
    \ int "athreshold", int "pthreshold", int "soscillation",
    \ int "doscillation", int "tolerance", int "cthreshold")
    {
    #//--- デフォルト値の設定 ---//
    dist = default(dist, 1)
    mthreshold = default(mthreshold, 150)
    athreshold = default(athreshold, 50)
    pthreshold = default(pthreshold, 50)
    soscillation = default(soscillation, 50)
    doscillation = default(doscillation, 70)
    tolerance = default(tolerance, 12)
    cthreshold = default(cthreshold, pthreshold)

    #//--- メイン ---//
    clip = clip.RemoveDirt(dist=dist, mthreshold=mthreshold,
    \ athreshold=athreshold, pthreshold=pthreshold, cthreshold=cthreshold,
    \ soscillation=soscillation, doscillation=doscillation,
    \ tolerance=tolerance, mode=2, grey=false, debug=false, show=0)
    return clip
    }

    RemoveDirt

    気がつくと、ズボンのベルトが外れたままになっていた。
    セクシーダイナマイト!
    にーやんです。


    ■RemoveDirt

    説明書見てみたんですが、いろいろ設定できるぶん、何だか難しそうです。

    挫折しそうな心にむち打って(笑)、パラメータに関係してそうなところだけ、簡単にまとめてみました。自分が試すための下準備みたいな感じです。

    まだ使ってみてないですし、説明書をざっくり斜め読みしただけなので、間違っている可能性があります。英語が読める人は説明書を読んでください。

    ※バージョン0.5のリリースに合わせて、2004/2/29の投稿で、以下の記事に修正を加えたものを紹介しています。バージョン0.5を使用する場合は、そちらをご覧下さい。


    ○書式

    RemoveDirt(clip clip, clip neighbour, int dist, int mthreshold, int athreshold,
    \ int pthreshold, int soscillation, int doscillation, int tolerance , int mode,
    \ bool grey, bool debug, int show)

    ※順番不明


    ○パラメータ

    [ノイズ検出関連の変数]
    pthreshold:ポストプロセスのしきい値(デフォルト50)
    soscillation:この値を超えるピクセルを選択し、振幅を計算(デフォルト50)
    doscillation:振幅がこの値を超えていたら、ノイズ除去をやめる(デフォルト70)


    [動き検出関連の変数]
    mthreshold:動き検出のしきい値(デフォルト150)
    athreshold:適用度のしきい値(デフォルト50)
    dist:範囲。1/近傍9pixel,2/近傍25pixel...(デフォルト1)
    tolerance:許容度。motionブロックの%がこの値を超えるとノイズ除去なし(デフォルト12)
    neighbour:反復処理用比較対象クリップ(デフォルトclip)


    [ノイズ除去のモード用の変数]
    mode:0はシンプルな平均化。1は0と2の中間(実験的)。速さは0>2>1(デフォルト2)


    [白黒クリップ用の変数]
    grey:デフォルトはfalse


    [デバッグ関連の変数]
    debug:trueでdebugviewユーティリティ用のデバッグ出力(デフォルトfalse)
    show:1でノイズ除去済みブロックを、2でノイズ除去されていないブロックを赤く表示。
    YUY2のみ(デフォルト0)


    ○注意点

    Avisynthスレの81さんがまとめておられたのをパク…(略)
    1. RemoveDirtのあとにCropしないこと
    2. Cropするなら"align=true"(AviSynth2.5.3以降)で
    3. 24fpsものはRemoveDirtの前に逆テレシネしておかないとダメ
    4. 他のフィルタはRemoveDirtより後に

    ○RemoveDirt簡易版(関数)

    使い勝手が微妙っぽいので(失礼)、デバッグ関係とかのパラメータを省略して関数化してみました。名前に反して、あまりシンプルじゃありません(笑)

    neighbour/grey/debug/showを省略(デフォルト値適用)し、mode=2に固定しています。

    ちなみにこれも試していませんので・・・(^^;


    [書式]
    SimpleRemoveDirt(dist, mthreshold, athreshold, pthreshold, soscillation, doscillation, tolerance)


    [例]
    SimpleRemoveDirt(1, 150, 50, 50, 50, 70, 12)


    [関数]
    function SimpleRemoveDirt(clip clip, int "dist", int "mthreshold", int "athreshold",
    \ int "pthreshold", int "soscillation", int "doscillation", int "tolerance")
    {
    #//--- デフォルト値の設定 ---//
    dist = default(dist, 1)
    mthreshold = default(mthreshold, 150)
    athreshold = default(athreshold, 50)
    pthreshold = default(pthreshold, 50)
    soscillation = default(soscillation, 50)
    doscillation = default(doscillation, 70)
    tolerance = default(tolerance, 12)

    #//--- メイン ---//
    clip = clip.RemoveDirt(dist=dist, mthreshold=mthreshold, athreshold=athreshold,
    \ pthreshold=pthreshold, soscillation=soscillation, doscillation=doscillation,
    \ tolerance=tolerance, mode=2, grey=false, debug=false, show=0)
    return clip
    }

    MarcFD's Filter

    ■MarcFD's Filter


    ○deen 1.0 beta

    関連スレッド(フランス語) :
    http://atlas2.tgv.net/~media-video/forum2/viewtopic.php?t=2808

    ダウンロード :
    http://atlas2.tgv.net/~media-video/forum2/download.php?id=102

    ○SangNom

    関連スレッド(フランス語) :
    http://atlas2.tgv.net/~media-video/forum2/viewtopic.php?t=3655

    ダウンロード :
    http://atlas2.tgv.net/~media-video/forum2/download.php?id=244


    SangNomはこのまえ紹介したインターレース解除プラグイン、DeenはMarcFD氏のサイトでも配布されているものの新しいバージョンだと思われます(未確認)。

    おそらくどちらもAviSynth2.5用で、YV12専用ではないかと思われます(こちらも未確認)。

    MarcFD氏のサイトはこちらです(なんとか確認 笑)
    http://ziquash.chez.tiscali.fr/

    SangNom

    ■SangNom(by MarcFD)

    インターレース解除フィルタ。
    詳細不明。
    http://mf.creations.nl/avs/filters/
    からダウンロード可能。
    ・書式
    SangNom(int order,int aa)

    ・引数
    order : like the filters of gift?デフォルトはorder=1。
    aa : アンチエイリアス。デフォルトは32。(+grand = +of errors, + small = +of aliasing)

    ・使用例(未確認)
    SangNom(1,32)
    原文がフランス語だったので機械語訳で英語にしてみましたが、やはり意味不明。
    orderはフィールドオーダーのことかもしれないと予想してみるが、これ如何に?
    違ったら、スマソ。

    以下、原文
    SangNom(int order,int aa)

    order : comme les filtres de don, order=1 par defaut
    aa = antialiasing, 32 par defaut (+grand = +d'erreurs, + petit = +d'aliasing)

    Page 2 of 3: 1 2 3