ホーム
製品
製品

グラフィックス

Whitepaper
3D Graphics: Adding a New Dimension to Your Embedded System
Webinar
Leveraging the Power of Adobe Flash in Embedded Devices
Free software evaluation
RTOS, tools and more
Foundry27
Foundry27
Source, upgrades, community forums, and more
BSPs and drivers
Hardware support directory
Ready to buy?
Product delivery options
We're here to help

わずかな CPU オーバーヘッド で 2D および 3D グラフィックスの高 速レンダリングを実現する高性 能ディスプレイ開発用のツール とランタイム コンポーネント

QNX アドバンスド グラフィック ス TDK は、業界標準の OpenGL ES API のクリ ーンルーム方式による実装に 基づいています。開発者は既 存の OpenGL コードや業界で培われ たプログラミング ノウハウを 活用することができます。

開発ツール

ランタイム コンポーネント

技術概要

QNX アドバンスド グラフィック ス TDK は、グラフィックス フレ ームワーク(GF)と呼ばれる技術 をベースにしています。GF が提供 するサービスを利用すると、ウ ェブ ブラウザや電子メール プロ グラムなどの、非常に小さな 2D 環 境から豊富な機能を持つ 2D およ び 3D 環境まで、さまざまなイン ターフェイスを構築できます。

GF アーキテクチャを利用するプロ グラムはハードウエアに直接レン ダリングできるため、リソースの 限られた組み込み環境での処理や 応答を高速化できます。GF はグラフ ィックス ドライバへの直接アクセ スにより高速化を実現し(メッセ ージの受け渡しやレンダリング時 のコンテキストの切り替えがない )、可能な場合はハードウエア ア クセラレーションを使用します。 このため、QNX アドバンスド グラフ ィックス TDK は組み込み環境に最適 で、シンプルなフルスクリーン UI か ら複数アプリケーションの GUI に対応 した複雑なウインドウ システムな どのあらゆる用途の基礎的なグラ フィック レイヤとして使用できま す。また、既存の UI のポーティン グ レイヤとしても機能します。

QNX アドバンスド グラフィック ス TDK は、組み込み 3D 要件に対応す るために、OpenGL® ES 1.0 API 規格(組み込 みアプリケーション用に設計さ れた OpenGL® のサブセット)をサポー トしています。QNX 製品では 、Common Profile および EGL プラットフォー ム インターフェイス レイヤをサ ポートしています。

グラフィック フレームワークで は、フルスクリーンのアプリケ ーション ユーザー インターフェ イスに対応していますが、複数 スレッドおよび複数アプリケー ションを処理することもできま す。そのため、必要に応じて 、Photon アプリケーションと同時に 、2D アプリケーションや OpenGL® ES ア プリケーションを実行すること もできます。

アドバンスド グラフィック ス TDK を使用したシステム構築例





2D 機能のサポート

3D 機能のサポート

技術ハイライト

メモリ使用量の削減

標準規格の利用

グラフィカル表示パフォーマン スの最適化

ちらつきのないアニメーション の作成

ビジネス上の利点

BOM コストの削減

モジュラ型ソフトウエアを使用 し、必要に応じて機能を導入

ハードウエア コストの削減

安価なハードウェアから最大限 のパフォーマンスを引き出すア ーキテクチャと高性能ドライバ

迅速な製品開発

3D の標準規格を利用しているため 、新しい知識の習得が不要

アーキテクチャ

ここに示す例は、QNX アドバンス ド グラフィックス TDK とグラフィ ックス フレームワーク(GF)を使 用して構築される一般的なアプ リケーションです。 注目すべき 特徴は、これらのコンポーネン トはすべてオプショナルである という点です。ただし、グラフ ィック ドライバ(devg)とアプリ ケーション コード(アドバンス ド グラフィックス ライブラリの 必要なルーチンとスタティック にリンクされる)を除きます。

図:アドバンス ド グラフィックス アプリケーシ ョンのアーキテクチャの例

上記の例には、以下のコンポー ネントも含まれています。

グラフィックス フレームワーク がフルスクリーンのアプリケー ション ユーザー インターフェイ スを対象としている場合には、 複数スレッドおよび複数アプリ ケーションを処理できます。ま た、必要に応じて、Photon アプリケ ーションと同時に、2D アプリケー ションや OpenGL® ES アプリケーション を実行することもできます。

グラフィックス フレームワーク はクライアント/サーバー モデ ルを使用します。サーバーとし て機能する io-display モニタ プロセスが デバイス リソース(メモリやレ イヤなど)やハードウエア アク セスを管理します。クライアン ト(表示アプリケーション)は ハードウエアに直接レンダリン グします。クライアントは gf_draw_begin() を 呼び出してロックすることにより 、ほかのスレッドやアプリケーシ ョンがハードウエアに同時にアク セスしないようにします。io-display モニ タ プロセスは安定性を高めるため に、クライアントの異常終了の捕 捉、終了後のリソースのクリーン アップ、および異常終了したクラ イアントによって保持されたまま になっているミューテックスの回 復を行います。メモリのミューテ ックスは最も優先度の高い待ちス レッドが取得します。これは、最 も優先度の高いグラフィック プロ グラムを最初に描画できるように するためです。

GF アプリケーションによるハード ウエア アクセスはすべて io-display モニ タ プロセスによって処理されます 。また、io-display モニタ プロセスはす べてのビデオ メモリの割り当て 、割り当て済みメモリの解放に よるアプリケーションの終了処 理(正常終了および異常終了) 、およびロックされたハードウ エアの解放(必要時)を行いま す。この処理はグラフィック ク ライアント プログラムから「隠 す」ことができます。これは、 やり取りがすべてライブラリに よって内部処理されるためです。

以下の図は、io-display モニタ プロセス と以下の 3 種類の独立したプログラ ム(クライアント)との関係を示 しています。

  • OpenGL® ES API を使用するアプリケーション

    図: io-display モニ タ プロセス

3 つのプログラムはすべてグラ フィック ドライバの共有オブジ ェクト(devg)を読み込んで、グラ フィック ハードウエアを直接制 御しています。各プログラムは 交代でグラフィック ドライバを 使用するために、io-display モニタ プ ロセスで管理されるミューテッ クスを要求して受け取ります。 排他的アクセスの順序は要求元 のプログラムの優先度によって 決まります。

io-display が起動すると、アプリケー ションはグラフィックス フレー ムワーク ライブラリ(libgf) と OpenGL® ES ライブラリを使用して グラフィック コンテキストを取 得し、デバイスへのレンダリン グを行います。

サードパーティ製のアプリケ ーション フレームワークや既 存の自社製用フレームワークは 、QNX アドバンスド グラフィック ス TDK と容易に組み合わせて使用で きます。既存のフレームワーク では、2D 描画、3D 描画、イメージ 、およびフォント サポートなど 、サポートされている基本機能 のいずれを使用することもでき ます。シンプルなラッパー ルー チンを使用すると、既存のフレ ームワークにグラフィックス フ レームワークのパフォーマンス とリアルタイム機能を提供しな がら、描画操作を細かく抽象化 できます。

グラフィックス フレームワー クのコンポーネント

QNX のグラフィックス フレーム ワークには、次のような概念 上のコンポーネントがありま す。これらのコンポーネント により、グラフィック環境を 理解しやすい階層に分けるこ とができます。

デバイスとディスプレイは GF に よって管理されるハードウエア コ ンポーネントを表す論理的エンテ ィティです。デバイスは単体のグ ラフィックス ハードウエア で、devg-* ドライバを介して io-display に 接続され、io-display によって管理さ れます。各デバイスのエントリ は /dev/io-display にあります。

各デバイスには、エンドユーザ ーが見るビデオ表示のディスプ レイが少なくとも 1 つあります。 一部のデバイスはマルチヘッドで 、複数のディスプレイをサポート しています。

レイヤはディスプレイに表示さ れるメモリの領域を表します。GF か ら見ると、すべてのデバイスに少 なくとも 1 つのレイヤ(レイヤ 0) が含まれますが、最新のグラフィ ックス ハードウエアの中には複数 のレイヤをサポートしているもの もあります。レイヤを使用すると 、ディスプレイ上にコンテンツを 配置する際の柔軟性が大きく向上 します。たとえば、背景レイヤに スクローリングマップを配置し、 前方のレイヤにマップをスクロー ルする GUI コントロールを配置する ことができます。このアプリケー ションでは、GUI コントロールを再描 画することなくマップをスムーズ にスクロールできます。これは、 ちらつきの解消と CPU 負荷の軽減に つながります。ビジュアル情報 の上にテキストや GUI を表示する 必要がある場合、階層化が役に 立ちます。

次の図は、デバイス、ディスプ レイ、およびレイヤ間の関係を 示しています。

図: デバイス、デ ィスプレイ、およびレイヤ階層

サーフェスは GF ライブラリがレン ダリングを行うメモリ要素です。 サーフェスがレイヤに接続されて いる場合(そのレイヤが表示可能 な場合)、サーフェス上にレンダ リングされるものはすべてそのレ イヤのディスプレイに表示されま す。サーフェス上にレンダリング されるオブジェクトが正しく表示 されるように、サーフェスではそ のレイヤでサポートされているピ クセル フォーマットを使用する必 要があります。一般的に、1 つのレ イヤは 1 つのサーフェスをターゲッ トにします(1 つのサーフェスに関 連付けられます)。例外はビデ オ キャプチャで一般的に使用さ れるプレーナ YUV などのプレーナ デ ータです。プレーナ YUV の場合は 、3 つのサーフェス(ビデオ コン ポーネントごとに 1 つ)が必要に なります。

デフォルトで、GF は最高のパフォ ーマンスが得られるようにビデ オ メモリ内にサーフェスを割り 当てます。ただし、サーフェス を構成する際に、CPU アクセスが最 適になるように要求することが 可能です。この場合、サーフェ スは一般的にシステム RAM 内に割 り当てられます。

コンテキストはレンダリング 関数コール間のレンダリング タ ーゲットに関する情報を保持す る構造です(ペン幅、前景およ び背景色、クリッピング矩形な ど)。1 つのコンテキストは 1 つ のサーフェスをターゲットにし 、すべての GF 描画関数に対する 引数になります。サーフェス は 2D 描画または OpenGL ES の 3D 描画で使 用できます。サーフェスは、複 数のレイヤ上で複数のサーフェ スを組み合わせてから表示する ことができます。

次の図は、コンテキスト、サーフ ェス、およびレイヤの関係を示し ています。

図: コンテキス ト、サーフェス、およびレイヤ

ディスプレイ、レイヤ、サーフ ェス、および描画コンテキスト を組み合わせて使用すると、シ ンプルなアプリケーションから 非常に複雑な画面を構築できま す。2D ナビゲーションの例は、4 つ のレイヤをサポートするグラフ ィックス環境を示しています 。3 つのレイヤが使用されてい ます(2D マップ表示、メニュー/ タッチ画面、および警告メッセ ージに対して 1 つずつ)。システ ム設計者は、1 つの完結したプロ グラムまたは 3 つの異なるプログ ラムとしてこのシステムを構築 できます。クロマキーとアルフ ァ ブレンディングを適切に使用 することで、複数のレイヤ間の 表示が可能になります。

そのため、3D の追加が OpenGL® ES プロ グラムの開発や、2D プログラム の 3D アップグレードへの変更ま たは 2D と同じレイヤでの OpenGL® ES プ ログラムの実行(分割画面)と 同じくらい簡単になります。

グラフィック レイヤで Photon を起動 して、QNX ウェブ ブラウザ TDK で開発 したカスタム ウェブ ブラウザ ア プリケーションを実行するだけ で、ウェブ ブラウザを追加でき ます。

仕様

顧客の製品で QNX Photon microGUI ウインド ウ システムを配布する場合は 、ランタイムごとに Photon ライセ ンスが必要となります。

ウェブ ブラウザのカスタマ イズ用には、別途ウェブ ブラ ウザ技術開発キット
が販売さ れています。

システム要件

グラフィックス チップの最新サ ポート状況については 、QNX アカウント マネー ジャまでお問い合わせください。

OpenGL® ES とそのロゴは米国およ びその他の国における Silicon Graphics, Inc. の 商標です。これらの商標が貼 付されている製品には、Silicon Graphics, Inc.が 保有し Silicon Graphics, Inc. によってライセ ンス供与される知的財産が 含まれます。