SDV 媒体集成概览

SDV Media 是一种轻量级操作系统,可为 SDV Core 添加媒体功能。

SDV 媒体参考实现

SDV Media

图 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 媒体集成的两种选项。

方式 1:基于主机(推荐)

集成选项 1:基于主机

图 2. 基于主机的集成。

基于主机的集成选项在 guest 中使用 VirtIO 来实现独立于实际硬件的功能。特定于硬件的驱动程序集成在主机端,并根据标准化的基于 VirtIO 的接口实现设备,以与客户机进行通信。

性能取决于主机端设备和驱动程序实现,但测试表明,该系统可以实现高性能和快速启动。

此解决方案的另一项优势是,基础设施和硬件上的映像可以非常相似,因为 guest 使用的是标准化接口。这样一来,在不同设备上运行时的更改就很少甚至没有;硬件依赖性仅限于主机。

选项 2:用户空间库抽象化

用户空间库抽象化

图 3. 用户空间库抽象化。

在此集成选项中,标准化接口是低级用户空间库 OpenGL (ES)、Vulkan、EGL、Video4Linux 和 tinyalsa。合作伙伴负责协调客机和主机之间的拆分,而应用开发者负责满足与用户空间库接口的兼容性。

这种方法可能会导致基础架构和硬件环境中的驱动程序不同,从而导致行为出现重大差异,并且如果不针对不同环境进行调整,就无法转移映像。

此方法适用于不支持完整 VirtIO 的合作伙伴。

SDV 媒体要求

SDV 媒体要求假定所有 SDV 核心要求均已满足。这可以通过使用参考实现来实现,也可以通过将系统库替换为供应商特定的解决方案来实现,如前几节中所述。