ストリーミングメディア向けAPI「OpenMAX」

Khronosはストリーミングデータや各種信号処理向けのAPIの規格も策定しており、これには「OpenMAX」という名称が付けられている。

OpenMAXも少々ややこしいことになっており、これは3つの階層のOpenMAXが個別に開発が進められている。これもここで簡単に解説しておくことにしよう。

3階層に分割された「OpenMAX」シリーズ

最も低階層のものは「OpenMAX DL」という名称で、DLは「Development Layer」の略だ。

これはコーデックや信号処理などを行う際に必要な定番の関数やライブラリ化したものだ。開発者はOpenMAX DLを活用して信号処理やコーデックのプログラムが書けると言うことになる。

最下層のOpenMAX DL。もともと「OpenMAX」と呼ばれていたのは「OpenMAX DL」の部分だった

この上に載っかるのが「OpenMAX IL」で、ILは「Integration Layer」の略になる。

これは、様々な信号処理やコーデック処理の結果を活用し、オリジナルのメディア処理を行う際に有用なAPIだ。もっと具体的に言えば、具体的なコーデックや信号処理そのものがライブラリ化されているというイメージだ。階層的に言えば、OpenMAX DLを使って作ったコーデックや信号処理を、OpenMAX ILを通して活用する、というようなイメージだ。プレイヤーソフトなどを開発する場合にはOpenMAX ILが有用になる。

いわば信号処理やコーデックライブラリともいえる中間層の「OpenMAX IL」

さらにこの上に載っかるのが「OpenMAX AL」で、ALは「Application Layer」の略だ。

これは、メディア処理プログラムやプレイヤーソフトなどをアプリケーション側からリモート制御するためのAPIになる。例えば、ゲームなどで戦闘が開始になったので戦闘のテーマ曲を流すとか、携帯機器である時刻になったら音楽を鳴らす、といった操作をするのにOpenMAX ALが活用できる。

最も上層の「OpenMAX AL」。メディアの再生処理ではなく、再生制御のためのAPI

3段階に分けた事の目的は、アプリケーションの移植性を高くするところにある。あるOpenMAX DLを活用して作成されたコーデックを、別のメディアチップやDSPチップの種類のハードウェア環境で動作させたいという場合でも、そのチップがOpenMAX DLをサポートしていれば、そのまま動作させることが出来る。同様に、たとえハードウェアが異なっても、OpenMAX ILを活用してコーデックが実装されていれば、そのプレイヤーソフトは、その別のハードウェアでも容易に動作させることが可能になる。

OpenMAX DL 1.0とOpenMAX IL 1.0は2006年にリリース済みで、現在はOpenMAX AL 1.0の規格策定が最終段階になっているとのこと。おそらく2008年には最上位のOpenMAX ALの最初のバージョンがお目見えできるようになるはずだ。なお、OpenMAX ILの次期バージョン1.1についても並行して規格策定が進められている。

OpenMAXのロードマップ

OpenMAX ILは早速1.1の規格が策定中