工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

i.MX RT1170MCUの異種グラフィックスパイプラインを理解する

この記事では、i.MX RT1170MCUとその3つの主要なグラフィックスアクセラレーションエンジンの異種グラフィックスパイプラインについて学習します。

現代の民生用およびプロ仕様の組み込みデバイスは、ますます幅広い有用な機能を提供できるようになっています。ただし、この機能の豊富さにより、設計者は、複雑なインターフェイスでユーザーを圧倒することなく、ユーザーがすべての機能にアクセスできるようにする方法に疑問を抱くようになります。

スマートフォンのようなGUIは、従来の物理的なコントロールに比べていくつかの改善点があるため、従来の物理的なボタンの効果的な代替手段になります。 NXPは、i.MX RT1170クロスオーバーMCUに含まれているものなど、さまざまな統合ディスプレイコントローラーやグラフィックアクセラレーターを使用して、機能豊富でグラフィカルなユーザーインターフェイスの開発にアクセスしやすくします。

図1。 i.MX RT1170 MCU

i.MX RT1170MCUの3つのディスプレイエンジン

ほとんどのNXPマイクロコントローラーは必要なGUI周辺機器をサポートできますが、一部のデバイス(i.MX RT1170 MCUなど)には、豊富なGUIアプリケーションをサポートするように設計された組み込みのディスプレイインターフェイスとグラフィックアクセラレータが付属しています。より具体的には、i.MX1170には、2DベクターグラフィックスGPU、PxPグラフィックスアクセラレータ、およびLCDIFV2サポートが含まれています。

ベクターグラフィックスアクセラレーションを備えた専用の2DGPUは、スケーラブルベクターグラフィックスのレンダリングとビットマップの作成および操作でCPUをサポートすることにより、組み込みデバイスの電力消費とパフォーマンスを最適化するのに役立ちます。 2D GPUは、画像を変換し(スケール、任意の角度での回転、反射、はさみ)、その場で色変換することもできます。

ピクセル処理パイプライン(PxP)は、スケーリング、回転、色空間変換などのさまざまな画像変換操作を1つの効率的な処理エンジンに結合します。

LCDIFV2のサポートにより、組み込み設計者は最大8つのディスプレイレイヤーを作成および操作でき、オンザフライのブレンディング機能を提供します。

2DベクターグラフィックスGPU

ピクセルグラフィックスと比較して、ベクターグラフィックスは、完全な画像を形成するために個々のピクセルに依存しません。ベクターグラフィックモデルは、コマンド(move、line to、curve toなど)と座標を使用して、最終的な画像にラスタライズされる形状を記述します。

JPEGファイルとして保存された写真などのピクセルグラフィックの各ピクセルのサイズは一定です。これは通常、ピクセルグラフィックを変換すると常に品質が低下することを意味します。一方、ベクターグラフィックスは、変換に関してはより柔軟性があります。たとえば、ベクトル画像は最終的な画像の解像度とは独立して動作するため、プリミティブシェイプのポイントを変換してから、品質を損なうことなく画像を再描画するのは簡単です。

したがって、写真のように詳細な画像をキャプチャする場合は、ピクセルグラフィックを使用するのが理にかなっています。対照的に、ベクターグラフィックは、書道、会社のロゴ、グラフィカルユーザーインターフェイスなどの単純な形状で作業する場合に最適です。

ベクター画像のレンダリングには、通常、レンダリングターゲット、パスデータ、塗りつぶし情報、変換データ、色情報、およびブレンドルールが必要です。レンダリングターゲットは、完成した画像を保持するバッファです。パスデータは、ベクター画像に存在する要素のジオメトリを表す座標とパスセグメントを含むため、ベクター画像の最も重要な部分です。これは、それぞれ操作コードと各操作に伴う引数のペアで構成されています。

図2。 ベクター画像のレンダリングには、通常、レンダリングターゲット、パスデータ、塗りつぶし情報、変換データ、色情報、およびブレンドルールが必要です。

塗りつぶしルールは、閉じた図形のどの部分を単色で塗りつぶすかを決定するときに適用するルールを記述します。このプロパティは、ゼロ以外と偶数奇数の2つの可能な値のいずれかを取ることができます。ゼロ以外のルールを選択すると、塗りつぶしアルゴリズムは、問題のポイントから各方向の無限大に光線を投影します。次に、その光線がベクターグラフィックの別の線を通過する頻度をカウントします。光線が左から右に向かう線に当たると、最終的な合計に1が加算されます。行が右から左に進む場合、アルゴリズムは1を減算します。最終的な数値がゼロの場合、ポイントは外側にあります。

対照的に、偶数奇数アルゴリズムは、ラインの方向に関係なく、ヒットした各ラインをカウントします。結果の合計が偶数の場合、問題のポイントは形状の外側にあります。それ以外の場合は、内側にあります。

次は、変換、回転、スケーリングなどのさまざまな操作を表すために行列を操作することによって行われる変換です。アフィン変換は、i.MX RT1170MCUに組み込まれている2DベクトルGPUの強力な機能です。

結果の形状を描画するときに、プログラマーは各パスに色情報を割り当てることができます:

図3。 変換は、さまざまな演算を表す行列を操作することによって行われます。図形を描くとき、​​プログラマーは各パスに色情報を割り当てることができます。

拡張バッファコンテンツへのパスをブレンドする方法を示すブレンドルールは、最終的なベクター画像を構成する最後の情報です。パスのカラーパラメータとブレンド関数からのアルファ値は、アルファがベクトルパス自体と宛先バッファに与える影響を定義します。

VGLite API(i-MX RT1170の2Dベクトルエンジンにアクセスするためのオプションの1つ)は、NXPアプリケーションノートAN13075で詳細に説明されているさまざまなブレンドルールを実装しています。ベクターパイプラインとは別に、VGLiteAPIはラスターイメージのパイプラインも提供します。 APIのその部分の詳細については、AN13075アプリケーションノートを参照してください。

PxP2Dアクセラレータ

ピクセル処理パイプライン(PxP)は、グラフィックバッファまたはコンポジットビデオをディスプレイに送信する前に処理できる強力な2Dアクセラレータです。ブリッティング、アルファブレンディング、色空間変換、固定角度回転、スケーリングなど、一般的に使用されるいくつかの2Dグラフィックス処理操作を統合します。

このエンジンの考えられる使用例の1つは、2つのバッファーをブレンドして、LCDに送信される単一の出力画像を形成することです。たとえば、バッファの1つに背景画像を含め、もう1つにテキストラベルやボタンなどのUI要素を含めることができます。レイヤーにはさまざまなサイズを設定できます。また、PxPエンジンを使用すると、すばやく簡単にスケーリングできます。 AN12110アプリケーションノートでは、PxPがそのプロジェクトのLCD画面に合うように内部バッファをスケーリングするより詳細なサンプルアプリケーションについて説明しています。

一般的な2D操作をPxPなどの専用ハードウェアコントローラーにアウトソーシングすると、組み込みマイクロコントローラーのメインCPUに機能を実装する場合と比較して、さまざまなメリットが得られます。最も一般的な機能はすぐに利用できるため、ソフトウェア開発者は車輪の再発明をする必要はありません。メインCPUは、複雑な2D操作を1秒間に複数回処理する必要もありません。つまり、代わりに他の計算に集中できるため、より流暢なユーザーエクスペリエンスが得られ、エネルギー効率が向上する可能性があります。

LCDIFV2ディスプレイコントローラー

液晶ディスプレイインターフェイス(LCDIF)の2番目のバージョンも、以前に作成されたディスプレイデータをフレームバッファからフェッチしてTFT LCDパネルに表示することにより、メインCPUを支援します。フレームバッファは、表示する画像データを格納するメモリ内のスペースです。 2つのバッファを同じ意味で使用することができます。そうすることで、コントローラーがもう一方のバッファーを描画している間に、一方のバッファーを更新できます。 LCDIFv2に加えて、i.MX RT1170MCUには追加のeLCDIFディスプレイコントローラーが組み込まれています。

i.MX内のLCDIFv2コントローラーは、プログラマーが実行時にブレンドおよび構成できるように、最大​​8つのレイヤーをサポートします。これはすべて、他のアクセラレータモジュールを使用せずに行われます。各レイヤーは、異なるカラーフォーマット、キャンバスサイズ、位置を利用し、任意のメモリ位置のバッファーからコンテンツをフェッチできます。

LCDIFv2コントローラーはIndex8BPP形式もサポートしているため、プログラマーはカラールックアップテーブルとそれに付随するインデックス配列を使用して32ビット/ピクセルの画像を定義できます。この方法により、余分なメモリを犠牲にすることなくARGB8888を定義できます。 AN13075アプリケーションノートと公式SDKには、これを実現する方法の例が示されています。

i.MXRT1170クロスオーバーMCUとそのサポートされるデバイス

i.MX RT1170の異種グラフィックスパイプラインは3つのエンジンで構成されており、それぞれに独自の利点があり、プロジェクトを簡素化し、同時に使用すると、メモリを節約しながらパフォーマンスを向上させることができます。いくつかのNXPデバイスは、この記事で説明したエンジンの一部をすでにサポートしています。i.MXRT1170は、3つのグラフィックアクセラレータすべてをサポートしています。 Cortex-M7ベースのi.MXRT1050およびi.MXRT106xデバイスは、PxPおよびLCDコントローラーをサポートします。 i.MX RT500はCortex-M33コアに基づいており、2DGPUが組み込まれています。

NXPは、ハードウェアに加えて、組み込みデバイス用のGUIを開発するためのさまざまなAPIと便利なツールをサポートすることにより、小型で高速なフル機能のデバイスを作成できます。 NXPのWebサイトには、サポートされているさまざまなAPIとツール、およびサポートされているすべてのデバイスの概要が記載されています。また、アプリケーションノート、ビデオ、SDKの例、オンデマンドウェビナーなどのさまざまなトレーニング資料も提供しています。

業界記事は、業界パートナーが編集コンテンツに適さない方法でAll About Circuitsの読者と有用なニュース、メッセージ、テクノロジーを共有できるようにするコンテンツの形式です。すべての業界記事は、読者に有用なニュース、技術的専門知識、またはストーリーを提供することを目的とした厳格な編集ガイドラインの対象となります。業界記事で表明されている見解や意見はパートナーのものであり、必ずしもAll AboutCircuitsやそのライターのものではありません。


埋め込み

  1. シャフト製造プロセスを理解する
  2. クラウドカルチャーの重要性を理解する
  3. 予知保全のメリットを理解する
  4. IoT脅威ベクトルの保護
  5. フライス盤の基礎を理解する
  6. 現場での機械学習
  7. プロトテックのヒント:ベクターグラフィックファイルとラスターグラフィックファイルの違い
  8. ショックアブソーバーの働きを理解する
  9. 結合という用語を理解する
  10. 素材の柔軟性を理解する
  11. ディーゼルエンジンの用途を理解する