このページの内容

C

Qt Quick Ultraliteの概要

Qt Quick Ultraliteは、マイクロコントローラ(MCU)を搭載したリソースに制約のある組み込みシステムに、Qtの主要なグラフィカルユーザーインターフェース(GUI)機能をもたらします。滑らかなGUIを構築するための豊富なQml APIセットと、Qt Quick ベースのグラフィカルユーザーインターフェース(GUI)をレンダリングするための効率的なグラフィックスエンジンを提供します。

Qt Quick Ultraliteは、メモリフットプリントやCPUサイクルなど、MCUプラットフォームにおけるリソースの制約を認識しています。これにより、これらのMCUプラットフォームで利用可能なリソースの範囲内で、アプリケーションが最適なパフォーマンスを発揮できるようになります。

主な機能

表示テキスト
  • 任意の解像度
  • GPU サポート
  • ハードウェアアクセラレーション対応レイヤー
  • 柔軟なフレームバッファリング
  • 表示コンテンツの90度、180度、270度の回転
  • ソフトウェアによるベクターグラフィックス
  • 実行時またはコンパイル時のフォントレンダリング
  • あらゆる言語に対応
  • アンチエイリアシング
  • テキストの折り返し
  • RTLおよびBiDi
  • テキスト項目に画像やアイコンを追加できるリッチテキストのサポート。
コントロールエフェクト
  • QMLを使用して滑らかなGUIを構築するための、20種類以上の既製のUIコントロール
  • 強力なアニメーションフレームワーク
  • 2.5Dエフェクト
スタイル入力
  • カスタムスタイリングとテーマ設定
  • あらゆる入力デバイスの統合
  • タッチインターフェース上の仮想キーボード
2D描画ツール
  • 2D ベクターグラフィックスおよび図形(長方形、線、円弧、パスなど)。
  • アンチエイリアシング
  • C++03 (ISO/IEC 14882:2003)、 C++11 (ISO/IEC 14882:2011)、および C++14 (ISO/IEC 14882:2014) に準拠した、QML、画像、およびフォントアセット用のコードジェネレータ。
  • CMake、Zephyr 、GHS MULTI IDE、および Espressif IoT Development Framework (ESP-IDF) 向けのプロジェクトジェネレータ。
画像プラットフォームのサポート
  • さまざまな 8 ビット、16 ビット、24 ビット、および 32 ビットのピクセル形式。
  • PNG および RLE 画像圧縮
  • アニメーション画像
  • 実行時の画像着色
  • JPEGデコード
  • RenesasNXPInfineon 、ST などの、最も普及している MCU 向けのポート。
  • ベアメタル、または AUTOSAR、ZephyrFreeRTOS などの RTOS をサポートしています。
測位および位置情報その他
  • 地理座標およびタイル化されたウェブマップのサポート。
  • 充実したドキュメント、チュートリアル、およびサンプル。

最小ハードウェア要件

Qt Quick Ultralite には、一般的な MCU プラットフォームの評価キット向けの一連のプラットフォーム実装が含まれています。これらのプラットフォームの一覧については、「サポートされているターゲットボードおよび開発用ホスト」を参照してください。

Qt Quick Ultraliteは、ディスプレイを駆動でき、かつ以下の要件を満たすあらゆる最新のMCUプラットフォームに適合させることができます。

  • マイクロコントローラ/プロセッサ:Cortex M4、M33、またはそれ以上。浮動小数点演算ユニット(FPU)はオプションですが、FPUを搭載することでパフォーマンスが大幅に向上します。
  • RAM(内部/外部):
    • スタティックRAM:最小限のアプリケーションでは20 Kb、一般的なアプリケーションでは200 Kb以上。
    • スタック:2~12 Kb。
    • ヒープ:20 Kb。

    また、ディスプレイのサイズ、色深度、およびフレームバッファの方式(シングルバッファまたはダブルバッファ)に応じて、フレームバッファ用に十分なRAMも必要です。

  • フラッシュ/ROM:500 KB 以上。
  • GPU/ハードウェアアクセラレーションはオプションですが、アニメーションで 20 FPS 以上のフレームレートを実現するには必須です。
  • ディスプレイインターフェース:高解像度および高フレームレートの場合は RGB、MIPI-DSI、または LVDS、低解像度および/または低フレームレートの場合は SPI またはパラレル。
  • Qt Quick Ultralite がサポートするpixel formats のいずれかをサポートするグラフィックスドライバ。

注: 得られる最大解像度とフレームレート、ディスプレイインターフェースによって異なります。

ハードウェアアクセラレーション

Qt Quick Ultralite は、ハードウェアアクセラレーションをサポートするプラットフォームではそれを使用し、サポートしていない場合は CPU フォールバックを使用してグラフィックスをレンダリングします。20 fps 以上のフレームレートでアニメーションを実行するにはハードウェアアクセラレーションが理想的ですが、これは厳密な要件ではありません。

MCUプラットフォームに応じて、以下のグラフィック処理がハードウェアアクセラレーションの対象となります:

  • 画像の描画
  • テキストの描画
  • 矩形の描画
  • 2Dパスの描画
  • 画像、テキスト、矩形、パスに対する2Dおよび2.5D変換
  • ブレンディング(画像、テキスト、矩形、パス、レイヤー)
  • ランレングス符号化(RLE)画像の復号

Qt Quick Ultraliteには、以下のドライバ向けのハードウェアアクセラレーション対応グラフィックス実装が付属しています:

  • CyGfx (Infineon Traveo T2G)
  • DaveHD (Renesas RH850)
  • PxP (NXP i.MX RT)
  • VGLite (NXP i.MX RT1170)
  • Chrom-ART (STM32)

メモリ使用量

RAM の使用量は、ディスプレイのサイズと色深度、使用されるQt Quick Ultralite の機能、およびアプリケーション内の GUI 要素の数によって異なります。

一般的なアプリケーションのメモリ使用量は、使用する解像度と色深度の組み合わせに応じて、以下のようになります:

  • 低解像度および低色深度:少なくとも 150~250 Kb
  • 中程度の解像度および色深度:少なくとも400~700 Kb
  • 高解像度および高色深度:2 Mb以上

Qt Quick Ultralite アプリケーションのフラッシュメモリまたは ROM の使用量は、使用する画像やフォントの数によって異なります。通常、500 Kb から 10 Mb のフラッシュメモリまたは ROM で十分です。

注: Qt Quick Ultraliteでは、メモリ使用量を削減するのに役立つさまざまなフレームバッファリング技術が提供されています。たとえば、部分フレームバッファリングを使用すると、RAMの消費量を少なくとも10%削減できます。

互換性Qt Quick

バージョン1.3以降、Qt Quick Ultralite が提供するQMLサブセットは、 Qt Quickとソース互換性があります。これにより、Qt Quick を使用してQt for MCUs アプリケーションを実行することが可能になります。また、Qt QuickQt Quick Controls 、またはQt Quick Timeline に基づく既存のコードを、Qt for MCUs アプリケーションで再利用できることも意味します。

Qt Quick のUltraliteコードのほとんどはQt Quick でも動作しますが、注意すべき制限がいくつかあります。以下のトピックでは、これら2つのQMLタイプセットの違いについて解説し、それらを効率的に活用するためのヒントを提供します:

特定のQtライセンスの下で利用可能です。
詳細はこちら。