今年の10月30日から11月7日にかけて、 ノルウェーのベルゲンで開催されたPIKSEL04に参加した。 PIKSELは、 オープンソースソフトウェアによるビデオデータ処理アプリケーション開発者、 およびそれらのアプリケーションのユーザであるアーティストらが一同に会し、 意見交換、作品の発表、および相互プロジェクトの連携を図るためのワークショップである。
本ワークショップはBEK (Bergen the Centre of Electoronic Arts)の主催で昨年から始められた。 今年で2回目の開催となる新しいイベントではあるが、 各プロジェクトの紹介や情報交換を行なうだけでなく、 オープンソースプロジェクトの利点を活かし、興味深い取組みが実践されている。 本稿ではオープン標準の意義について、 PIKSELに見る状況をひとつのケーススタディとして紹介しよう。
オープンソース・ビデオ処理ソフトウェア
ところで、オープンソースソフトウェアによるビデオデータ処理アプリケーショ ンといっても馴染みのない方がほとんどと思われる。 まずはPIKSEL04で紹介されたオープンソース・ビデオ処理ソフトウェアのうち、 主要なものを紹介しておこう。 クラブイベントで使われるVideo Jockey (VJ)ツールから、 デスクトップビデオ編集ツールに近いものまで、 根本的なコンセプトは近いものの多様なアプリケーションが提案されている。 またそれらの完成度も非常に高い。
PD/PDP マルチメディアデータを取扱うソフトウェアPure Data (Pd)を拡張して、 画像データ系列を実時間で扱えるようにしたアプリケーション。 FreeJ イタリア発のVJツール。 様々なフィルタを重ね合わせて複雑な効果を生成することができる。 VeeJay オランダ人開発者によるVJツール。繰返し再生や逆回しなど、 単なる実時間イフェクトだけでなく、ビデオ操作の自由度も高い。 LiVES ノンリニアビデオ編集機能まで視野に入れたビデオ処理ツール。 “LiVES”とは、”LiVES is Video Editing System”のアクロニムである。 GePhex ドイツ発。処理モジュールを線で結んで、 ビジュアルプログラミング的にビデオ処理アプリケーションを構成させることができる。 MoB ネットワークを介してマルチメディアデータをリアルタイム処理するためのツール。 具体的な処理の内容はXMLで既述される。 EffecTV 日本人開発者、電通大の福地先生によるリアルタイムビデオイフェクト・アプリケーション。 この分野の草分的存在で、その他のアプリケーションに与えた影響は大きい。
その他、様々なアプリケーションが紹介され、 またワークショップの会期を通じて各アプリケーションを駆使したライブ・デモンストレーションが行なわれた。 さらにより深く知りたい方は、PIKSEL04のウェブサイトにある関連するソフトウェアの一覧を参照されたい。
共通プラグイン方式の提案
さてこのように、ビデオ処理ソフトウェア、それもオープンソースソフトウェアとして公開されているアプリケーションが百花繚乱といったところだが、 中心的な画像データ処理のコードは重複がある。 例えばEffecTVで提案された様々なイフェクトのいくつかは、 他のアプリケーションのデータフォーマットに合わせて形を変え、 利用されている。 筆者らのグループが手がけているMAlibでも、 フィルタのサンプル実装として、 EffecTVからの移植を試みたものがいくつか含まれている。
このような状況は、一見、コードがうまく再利用されているようにみえる。 しかし新たなソフトウェアが開発されたときに、その都度、他者が逐一追随しなければならず効率的ではない。
そこでPIKSELでは、画像データ処理部を共通プラグインとして切り分け、 各アプリケーションから共通のインタフェースでアクセスすることにより、 様々なプラグイン実装を各アプリケーションで共用できる仕組みを提案している。 今年のPIKSEL04でも白熱した議論が展開され、 その仕様はほぼ固められた。
オープンソースが裏付けるオープン標準の意義
大概において標準化の議論は難航するもので、 共通インタフェース、共通データフォーマットを決める議論は、 すんなりとは進まなかった。 各アプリケーション内部のデータ構造は様々である。 それは扱う画像フォーマットでさえも違う。 ひとつ標準を定めると、どこかで帳尻を合わせなければならないため、 各アプリケーション開発者の綱引きは避けられないからだ。
しかしひとたび合意が形成してしまえば、その後は実装ベースで話が進む。 なにしろオープンソースであるが故に、 裏でコッソリと特別なAPIを用意するなどの姑息な誤魔化しは効かない。 かくしてプラグイン開発においては健全な開発競争が進み、 またその成果を皆で共有することができるのである。
前述したアプリケーションのうちのいくつかでは既に対応を表明し、 開発が今も進められている。 リアルタイムビデオ処理アプリケーション向けの共通プラグイン開発は、 今ようやく立ち上がったところだ。 今後が楽しみな分野のひとつである。
本文中のリンク・関連リンク:
- PIKSEL関連リンク
- PIKSEL04オフィシャルサイト (英語)
- 主催者であるBEK (Bergen the Centre of Electoronic Arts)のサイト (英語)
- 関連ソフトウェア一覧 (英語)
- PIKSEL04の様子は、福地さんの日記「2004年11月の小ネタ」に詳しい。
- 本稿で紹介したソフトウェア : PD/PDP, Pure Data (Pd), FreeJ, VeeJay, LiVES, GePhex, MoB, EffecTV, MAlib (全て英語)
- 共通プラグイン : LiViDO (Linux Video Dynamic Objects) 開発者向け情報 (英語)