なぜ今のままでは使えないか

一部の画像処理マニアとしての意見ですが、現状の AIF Toolkit はまだ機能不足です。先日も書きましたが、render target 的なものが実装されない限りは本気モードに移行できません。例えば Real-Time Video Abstraction なんかをやろうとすると以下のようなフローになります。トレーラー 見れば何となく分かると思いますが、詳しくは論文の Figure 2 参照。

  • 入力の RGB 色空間から Lab 色空間への変換
  • バイラテラルフィルタでのスムージングを数回繰り返す
  • 階調化とエッジ抽出を別々に行う
  • 上の結果を合成
  • RGB 色空間に戻す
  • 微調整

という何段階もの処理を経ます。といっても段階の数が問題なのではなく、バイラテラルフィルタのような畳み込みが問題なわけです。

色空間の変換をするだけであれば、単一のピクセルを見るだけで済むので、いったん Lab にしてから RGB に戻す作業が一つのカーネルでできます。しかし、バイラテラルフィルタは周囲のピクセルを参照して処理するため、結果をいったん別の画像に書き出さなければならないので、その段階でカーネルを終了させる必要があります。と言うわけで、複雑な処理は不可能。ここでちょっと萎えてしまい、放置気味です。カーネルには 2 つの画像を入力できるようなので、それを使って無理やり出来るかもしれないですが、未実験です。

もちろん、単一のフィルタを今のうち準備しておくことで、今後 AIF filter graph などのツールが出たときにすぐ対応できるとは思います。やっておく分には損はしないでしょうね。