DirectX APIとは
産業用カメラとフレームグラバーボード用
数多くの産業用カメラやキャプチャデバイス(画像入力ボード・フレームグラバーボード・キャプチャーカード)にDirextShow対応の製品が多いことから、DirectX及びDirectShowの概要を簡単に解説します。あくまで内容を簡単に解説したものですので、詳細はご確認ください。
DirectXとは
DirectX | Microsoftが開発したWindows APIの1つで下記の主なコンポーネント群から構成される |
---|---|
DirectGraphics | グラフィックス・コンポーネントで二次元/三次元グラフィックやテキストの描画 DirectDrawや3D、2D、Writeなど主に4つのAPIからなる |
DirectInput | キーボード、マウス、ジョイスティックなどの入力処理コンポーネント |
DirectAudio | 音声の再生と処理を行サウンドコンポーネント DirectSound、3D、Musicなど3つのAPIからなる |
DirectPlay | ゲーム用のネットワークコンポーネント |
DirectMedia | マルチメディアストリーム・動画の再生と処理コンポーネント DirectAnimation、DirectShow、Transformなど3つのAPIからなる |
DXVA | DirectX Video Accelerationは動画処理のAPI DirectShowの一部から独立したもの |
Media Foundation | 最新のマルチメディアに対応したAPIでDirectShowがこれに置き換わる予定 |
"DirectX"の起源は、Windows環境においてコンピュータ資源を独占するゲーム等を走らせるためのプログラム開発として始まり、1994年「WinG」 という形で公開される。その後マイクロソフトにWinGの思想を引き継ぐ"DirectX"の開発チームが発足し"GameSDK" として公開が始まる。 "DirectX"の根幹である"DirectDraw"はPCのビデオボードを調べ、そのボードに搭載された処理はボードのハード に任せ、ボードに無い機能はソフトウェアーがカバーする(エミュレーションソフトウェア)。
また、"DirectInput"はジョイスティックなどの入力に、"DirectSound"と"DirectMusic"はサウンドと音楽関連を担い、"DirectPlay" はネットワーク関係を担当、そして"DirectShow"がマルチメディア・ストリームの再生記録を行える等、現在のDirectXは様々な機能を備えたAPIの集合体へ発展している。
アプリケーションを作成するにあたって知っておきたいのは、まずDirectXのコンポーネントが"COM"(Component Object Model)で書かれていることである。 Windows環境において.NETやC++、Delphi、Javaなど様々なプログラミング言語があるが、共通性がなくそれぞれ独自のビルディング過程を経てマシン言語へ落され、C++で作成したアプリケーションを.NETのプログラムが使うとことはできない。この"COM"とは.NETのプログラムからも、C++のプログラムからでも共通のファイルとしてアクセスできるような構造になっている。"COM"が可能にしたことは、あらゆるバイナリレベルのプログラムが利用可能なバイナリレベルのプログラムを作ることである。つまり、どの様なプログラミング言語を使ってアプリケーションを作ろうとCOM形式で作成された"DirectX"へは自由にアクセスすることができる。
DirectShowとは
【2】処理:データの変換処理
【3】レンダラ:最終的な出力デバイス
Windows Protected Media Path、Windows Media Player & Format SDK、DXVAもMedia Fundationを利用しこれからのマルチメディア配信と映像処理を意識した構成であることから、DirectShowも徐々にMedia Foundationに置き換えられる予定。