QTheora (0.9.0) | 2009-09-09 12:00 |
DirectShow とは、Windows 向けのマルチメディア・ストリーミング・プロセッシング・フレームワーク である。
Windows では、Video for Windows というビデオ処理用の API セットがあったが、MPEG ビデオや、 ネットワークストリーミング等の要件に対応できなかった。そのため、これらをサポートするコンポーネント として、1997 年 DirectX API 群の一つとしてリリースされた。
DirectShow アーキテクチャの特徴として、フィルターと呼ばれるコンポーネントを組み合わせ、データーフロー に応じて、フィルター群を接続することで、コンテンツの再生のみならず、エンコーディングや、編集、特殊効果 など、幅広い応用ができる点が挙げられる。そのため、メディアプレイヤーのみにとどまらず、ビデオ編集ソフト など幅広いアプリケーションで使用されている。
一方、独自に開発したフィルターコンポーネントを、プラグインのような形で、システムに組み込むことができる ため、相性の悪いフィルターの組み合わせが使用されると、さまざまな不具合が生じることがある。DVD プレイヤー やビデオ編集ソフト、フリーソフトウェア系のフィルターなど、ユーザーの環境によってインストールされる フィルターコンポーネントが様々であるため、開発者のみならず、一般のエンドユーザーにとっても、DirectShow 環境 の安定した運用には、苦労する点が多い。
前述のように、DirectShow のプログラミングでは、フィルターグラフと呼ばれるコンポーネントに、フィルターを登録し、 希望する処理に応じたデーターフロー通りにフィルター同士を接続し、フィルターグラフを起動することで、所定の処理を 行う。
フィルターには、ピンと呼ばれる接続点があり、フィルター同士の接続では、このピン同士を接続することになる。
ピンには、出力ピンと、入力ピンがあり、接続は必ず、出力 -> 入力 という向きで行われる。
データーの発生源となるフィルターを、ソースフィルター、データーの最終的な消費先となるフィルターをレンダラー フィルターと呼ぶことがある。 入力と出力を持ち、中間的な処理を行うフィルターは、トランスフォームフィルターと呼ばれる。
データーフローを水流に例えるならば、出力側を上流、入力側を下流と考えることができる。
DirectShow の SDK ツールには、GraphEdit というプログラムがあり、フィルターグラフ内のフィルターや、 ピンの接続の様子をグラフィカルに確認することができる。
DirectShow フィルターコンポーネントは、COM コンポーネントとして実装され、所定のインターフェイスを サポートするコンポーネント・オブジェクトとなっている。
通常使用されるフィルターコンポーネントは、システム側から提供されるので、大抵の応用では、フィルター コンポーネントを独自に開発する必要はない。が、標準コンポーネントで提供されない機能が求められる場合は、 独自にフィルターを開発する必要が生じる。
DirectShow アーキテクチャは、汎用性に富んでいるが、その分、必要とされる要件も多く、フィルターの 開発難度は高いといえる。そのため、問題のあるフィルターも流通しており、特に自動作成で稼働するフィルター に問題があると、開発者の想定外のアプリケーションソフトに不具合を引き起こす場合がある。
フィルターでのデーターフローの制御には、プッシュモデルとプルモデルがある。ほとんどの下流フィルターでは、 プッシュモデルでのデーター受信を想定している。そのため、通常フィルターグラフ内に、1つは、プッシュモデルで データ送出を行うフィルターが存在している。
標準フィルターコンポーネントでは、パーサーフィルターやスプリッターフィルター、キャプチャーフィルターが そのようなフィルターに該当する。
パーサーフィルターやスプリッターフィルターが、外部フィルターからデーター供給を必要とする場合、プルモデルで 上流ソースフィルターからデーターを取得する。
トランスフォームフィルターに相当するフィルターは、開発需要が多かったため、DirectShow フィルターの開発 難度を緩和する目的で、簡略化された仕様である DMO (DirectX Media Object) が、DirectX 8 の時代に導入 された。DMO が DirectShow フィルターグラフと相互運用される場合、システム提供のプロクシーフィルターを 介して使用される。
DirectShow がリリースされて既に 10 年以上が経過してることもあり、次世代のマルチメディアプラットフォーム として、Microsoft Media Foundation が、Windows Vista と共にリリースされている。
HDTV コンテンツ、DRM やハードウェア (DXVA) の先進サポート、高効率化など多くの新機構を備えており、 Windows 7 のリリースを控え、これからの普及が期待される。
ただし、Media Foundation は、Windows XP にはバックポートされず、また再生系用途に重点を置いているため、 DirectShow を完全に置き換えるものではないとされている。
[PageInfo]
LastUpdate: 2009-06-10 17:06:11, ModifiedBy: noumiakira
[License]
Creative Commons 2.1 Attribution-ShareAlike
[Permissions]
view:all, edit:members, delete/config:members