OpenMAX (Open Media Acceleration) は、しばしば「OMX」と略され、非独占的でロイヤリティフリーのクロスプラットフォームのC 言語プログラミングインターフェイスセットです。オーディオ、ビデオ、静止画像の処理に特に役立つルーチンの抽象化を提供します。[ 1 ] [ 2 ]これは、ビデオコーデック、グラフィックスライブラリ、ビデオ、画像、オーディオ、音声、スピーチのその他の機能など、大量のマルチメディアデータを予測可能な方法で効率的に処理する必要がある低電力および組み込みシステムデバイス (スマートフォン、ゲーム機、デジタルメディアプレーヤー、セットトップボックスなど) を対象としています。[ 3 ]
OpenMAXは、アプリケーション層(AL)、統合層(IL)、開発層(DL)の3つのインターフェース層を提供します。OpenMAXは、非営利の技術コンソーシアムであるKhronos Groupによって管理されています。[ 4 ]
2004 年 7 月に最初に発表されました。[ 5 ] OpenMAX ワーキンググループは、当初、ARM、Motorola、Samsung、STMicroelectronics、およびTexas Instrumentsのメンバーによって設立されました。仕様のバージョン 1.0 は 2005 年 12 月に公開されました。[ 6 ] OpenMAX ワーキンググループによって作成された最後のドラフト (1.2.0) は 2011 年のもので[ 7 ]、2012 年以降、適合していると宣言された製品はありません。[ 8 ] OpenMAX 仕様は、HEVC や VP9 などの最新のコーデックをサポートするように更新されることはなく、Android が OpenMAX IL 標準の更新の事実上のソースとなっています。[ 9 ]
OpenMAX ALは、メディアプレーヤーなどのマルチメディアアプリケーションとプラットフォームメディアフレームワーク間のインターフェースです。これにより、アプリケーションを開発する企業は、OpenMAX ALアプリケーションプログラミングインターフェース(API)をサポートするさまざまなプラットフォーム(顧客)にアプリケーションを簡単に移行できます。[ 10 ]
OpenMAX IL は、メディアフレームワーク ( Android のStageFrightや MediaCodec API、 Windows のDirectShow 、Linux のFFmpegやGStreamerなど) とマルチメディアコンポーネント (オーディオやビデオコーデックなど)の間のインターフェースです。これにより、プラットフォーム (MP3 プレーヤーの実装を可能にするなど) を構築する企業は、MP3 デコーダやイコライザー効果などのコンポーネントを簡単に変更したり、さまざまなベンダーからプラットフォーム用のコンポーネントを購入したりすることができます。[ 11 ]
OpenMAX DLは、デジタル信号プロセッサ(DSP)チップ、CPU、GPUなどの物理ハードウェアと、ビデオコーデックや3Dエンジンなどのソフトウェア間のインターフェースです。これにより、企業は低レベルソフトウェアを再最適化することなく、OpenMAX DLをサポートする新しいハードウェアを容易に統合できます。
OpenMAX ALは、代表的なオブジェクト群と、それらのオブジェクトを制御・設定するためのインターフェースを標準化することで、一般的なマルチメディアアプリケーションのユースケースに対応します。OpenMAX AL APIは、メディアプレーヤーとメディアプレーヤー/レコーダーの2つのプロファイルに分かれています。プラットフォームは、いずれかのプロファイルに含まれるすべての機能を提供することで、これらのプロファイルのいずれか、または両方に準拠することができます。
これは、リソース制約のあるデバイス向けに設計された、アプリケーションレベルのC言語マルチメディアAPIです。OpenMAX AL APIの設計では、基本的な携帯電話、スマートフィーチャーフォン、PDA、モバイルデジタル音楽プレーヤーなど、モバイル組み込みデバイスへの適用性を確保することに特に重点を置いています。ただし、これは他の高度なメディア再生および録音デバイスへの適用を妨げるものではありません。
OpenMAX AL APIの設計は、アプリケーション開発者にとっての使いやすさを特に重視しています。オープンなクロスプラットフォームAPIであるため、開発者は最小限の労力で同じソースコードを複数のデバイスに移植できます。このように、OpenMAX ALはアプリケーション開発のための安定した基盤を提供します。
OpenMAX ALの主な機能は以下のとおりです。
OpenMAX AL のデジタルテレビ (DTV) 拡張仕様は、モバイルおよび組み込みデバイス上の高性能デジタル TV 関連アプリケーション向けのモジュール式でロイヤリティフリーのクロスプラットフォーム C 言語 API として、標準に依存しないモバイル TV のチューニング、再生、録画、および電子番組ガイド機能を OpenMAX AL マルチメディア API に追加します。DTV 拡張機能は、すべての主要なモバイル TV 標準 (DVB-H、ISDB-T、T-DMB など) と互換性があり、デジタル TV のブロードキャスト、ユニキャスト、マルチキャスト配信方式をサポートしています。[ 12 ] [ 13 ]
OpenSL ES(Open Sound Library for Embedded Systems)は、Khronos Groupが提供する別のAPIで、OpenMAX ALと同じターゲット市場向けにオーディオライブラリを提供しています。一方、OpenMAXはマルチメディアサービス全般を対象としています。OpenSL ESとOpenMAX ALのオーディオサブセットは、共通のアーキテクチャを共有し、いくつかの共通機能を備えています。
OpenMAX IL APIは、C言語を用いて、様々なプラットフォーム間でメディアコンポーネントの移植性を実現することを目指しています。OpenMAX ILでは、コンポーネントは個々の機能ブロックを表します。コンポーネントは、ソース、シンク、コーデック、フィルタ、スプリッタ、ミキサー、またはその他のデータ演算子になり得ます。実装によっては、コンポーネントはハードウェア、ソフトウェアコーデック、別のプロセッサ、またはそれらの組み合わせを表す可能性があります。
このインターフェースは、システム内のハードウェアおよびソフトウェアアーキテクチャを抽象化します。OpenMAX IL APIを使用すると、ユーザーは個々のコンポーネントをロード、制御、接続、およびアンロードできます。この柔軟なコアアーキテクチャにより、統合レイヤーはほぼすべてのメディア使用例を容易に実装し、既存のグラフベースのメディアフレームワークと連携できます。OpenMAX IL APIの重要な焦点は、メディアコンポーネントの移植性です。
OpenMAX IL APIの設計は、ユースケースの柔軟性とコンポーネント間のデータ転送の最適化に特に重点を置いています。
OpenMAX IL APIは、Android上でオーディオおよびビデオコーデックを統合するためのAPIの基盤として採用されました。その結果、ほとんどのSoCベンダーは、Androidが必要とするサブセットのみをサポートする最小限の実装を出荷しています。アプリケーションはこれらのOpenMAX ILコンポーネントを直接使用するのではなく、Android MediaCodec APIを介してのみ使用します。現在、拡張機能を含むAndroidのOpenMAX ILサブセットが事実上の標準となっています。
2011年に暫定版1.2.0がリリースされた。[ 16 ]
OpenMAX DL APIは、一連の低レベルマルチメディアカーネル、すなわちメディア処理の構成要素を定義します。これらの構成要素は、標準化されたメディアコーデックやその他の統合メディア処理エンジンにおける従来の計算上のボトルネックを高速化するために使用できます。OpenMAX DLインターフェースの機能範囲は、信号処理、画像処理、音声符号化、画像符号化、ビデオ符号化など、複数の領域に及びます。
OpenMAX DLは、以下の5つのアプリケーションドメインに分かれています。
OpenMAXワーキンググループは、姉妹プロジェクトであるOpenVGとともに2004年7月6日に設立されました。2008年に昇格したメンバーは、 AMD、Apple、ARM、Creative、Dell Inc、Ericsson、Freescale、Imagination Technologies Group plc、Intel、IBM、Motorola、Nokia、Nvidia Corporation、Samsung Electronics Co. Ltd、SK Telecom、Sony Computer Entertainment Inc、Texas Instrumentsでした。
{{cite web}}: CS1 maint: タイトルとしてアーカイブされたコピー (リンク) OpenVideo Decode (OVD) API