SDV Media は、SDV Core にメディア機能を追加する軽量オペレーティング システムです。
SDV メディアのリファレンス実装
図 1. SDV メディア アーキテクチャ。
SDV Media は SDV Core をベースとしており、GPU、動画、音声などのハードウェア エンジンへのアクセスを追加することでメディア機能を追加します。今後のリリースで、ハードウェア エンジンが追加される可能性があります。
リファレンス実装では、VirtIO を使用してハードウェア抽象化(特に virtio-gpu、virtio-media、virtio-snd、virtio-input)を実装します。
この実装では、OpenGL(ES)、Vulkan、EGL、Video4Linux、tinyalsa などのメディア機能にアクセスするために標準のユーザー空間ライブラリを使用します。そのため、本番環境の実装では、VirtIO ドライバを置き換えて、ハードウェア固有のソリューションでこれらのインターフェースを実装できます。
SDV Media には SDV Core の全機能が含まれています。つまり、SDV 通信スタックが含まれ、GKI を使用し、SDV の他のすべての機能が含まれています。
統合オプション
このページの残りの部分では、SDV メディア統合の 2 つのオプションについて説明します。
オプション 1: ホストベース(推奨)
図 2. ホストベースの統合。
ホストベースの統合オプションでは、ゲスト内の VirtIO を使用して、実際のハードウェアに依存しない機能を実装します。ハードウェア固有のドライバはホスト側に統合され、標準化された VirtIO ベースのインターフェースに従ってデバイスを実装し、ゲストと通信します。
パフォーマンスはホスト側のデバイスとドライバの実装に依存しますが、テストでは、システムが高いパフォーマンスと起動速度を実現できることが示されています。
このソリューションのもう 1 つの利点は、ゲストが標準化されたインターフェースを使用するため、インフラストラクチャとハードウェアのイメージが非常に類似していることです。これにより、さまざまなデバイスで実行するための変更が最小限に抑えられます。ハードウェアの依存関係はホストに限定されます。
オプション 2: ユーザー空間ライブラリの抽象化
図 3. ユーザー空間ライブラリの抽象化。
この統合オプションでは、標準化されたインターフェースは低レベルのユーザー空間ライブラリ OpenGL(ES)、Vulkan、EGL、Video4Linux、tinyalsa です。ゲストとホスト間の分割のオーケストレーションはパートナーの責任であり、ユーザー空間ライブラリ インターフェースとの互換性の実現はアプリ デベロッパーの責任です。
このアプローチでは、インフラストラクチャ環境とハードウェア環境で異なるドライバが使用される可能性が高く、動作に大きな違いが生じる可能性があります。また、異なる環境に適応させなければ、イメージを転送できません。
このアプローチは、VirtIO を完全にサポートしていないパートナーを対象としています。
SDV メディアの要件
SDV メディアの要件は、SDV コアの要件がすべて満たされていることを前提としています。これは、リファレンス実装を使用するか、前のセクションで説明したように、システム ライブラリをベンダー固有のソリューションに置き換えることで実現できます。