Microsoft DirectX 8.0

レンダリング エンジンについて

ここでは、Microsoft DirectShow 編集サービス (DES) でどのようにビデオ編集プロジェクトがレンダリングされるかについて説明する。

DES では、プロジェクトはタイムラインとして表される。タイムラインは、ソース クリップの再配置やビデオ エフェクトの追加など、ビデオ編集で最も頻繁に行われるタスクを簡略化するために役立つ。一方、DirectShow ストリームのアーキテクチャでは、フィルタ グラフが必要である。そのため、プロジェクトをレンダリングするためには、タイムラインをフィルタ グラフに変換しなければならない。この操作を行うコンポーネントが、レンダリング エンジンと呼ばれる。DirectShow では、次の 2 つのレンダリング エンジンが提供される。

スマート レンダリング エンジンは、スマート再圧縮を使って、パフォーマンスを向上させる。スマート再圧縮では、元のファイル フォーマットが最終的な出力フォーマットと異なる場合にだけ、ソース ファイルが再圧縮される。フォーマットが一致する場合は、ソース ファイルが再圧縮されることはない。スマート再圧縮は、ビデオ圧縮用だけにサポートされ、オーディオ圧縮用にはサポートされない。

プレビューには、基本レンダリング エンジンを使用する。スマート レンダリング エンジンでもプレビューはできるが、圧縮されたストリームを圧縮解除しなければならないので、効率が悪い。ファイルの書き込みには、スマート再圧縮が必要な場合にはスマート レンダリング エンジンを使用する。それ以外の場合は、基本レンダリング エンジンを使用する。スマート再圧縮を使うと、ファイルの書き込みに必要な時間が格段に減る。

重要 :  ソース ファイルに ASF ファイルが含まれていて、目的のファイルが AVI ファイルである場合は、スマート レンダリング エンジンを使用しないこと。ファイルが正しく再生しない可能性がある。基本レンダリング エンジンを使うか、または ASF ファイルの書き込みを検討する。

フィルタ グラフの構築

フィルタ グラフは、2 段階で構築される。最初の段階では、レンダリング エンジンは "フロント エンド" を作成する。これは、フィルタ グラフの一部である。次の図は、一般的なフロント エンドを示している。

フィルタ グラフのフロント エンド

サブシステムには、さまざまな特殊フィルタが含まれている。これらのフィルタは、レンダリング エンジンが自動的に組み立てる。フロント エンドには、タイムラインの各グループごとに 1 つの出力ピンが含まれている。基本レンダリング エンジンを使用する場合、出力ピンは非圧縮データを出力し、スマート レンダリング エンジンを使用する場合は圧縮データを出力する。

2 つ目の段階では、出力ピンがレンダリング フィルタに接続される。プレビューでは、レンダリング フィルタはビデオ レンダラおよびオーディオ レンダラとなる。ファイルの書き込みでは、レンダリング フィルタはマルチプレクサ (mux) フィルタおよびファイル ライタ フィルタとなる。

フィルタ グラフの作成

参照