Skip to main content
Qualcomm® 智能多媒体 SDK(IM SDK)是一个统一的、硬件加速的框架,用于在 Qualcomm Dragonwing IoT 平台上构建多媒体和 AI/ML 应用。它基于 GStreamer 构建,提供 40 多个 Qualcomm 优化插件,可组合成单流或多流的摄像头 → AI → 显示/流传输管道,而无需深入了解底层硬件。 当您的应用是实时摄像头、视频或视觉管道时,请使用 IM SDK:它将采集、预处理、推理和渲染组合到一个管道中,并让每个阶段在最高效的引擎上运行。
IM SDK 作为 Qualcomm Linux 镜像的一部分提供,因此 AI 开发者工作流无需单独安装。有关完整的 SDK 参考(安装替代方案、完整插件目录、管道构建指南和示例应用),请参见 Discover SDKs → IM SDKs

为什么使用 IM SDK

统一的多媒体 + AI 框架

采集、预处理、推理、后处理和渲染都在单个 GStreamer 管道中完成,而不是将独立的应用拼接在一起。

默认硬件加速

插件原生使用 Qualcomm CPU、GPU、NPU(HTP)、摄像头 ISP、视频(VPU)和 DSP,因此每个阶段都在合适的引擎上运行。

零拷贝(zero-memcpy)缓冲区

帧以 DMA-buf 句柄的形式在管道中流转,因此同一缓冲区在 ISP、GPU 和 NPU 之间共享,无需 CPU 拷贝。

GPU 前处理和后处理

缩放、颜色转换、张量布局和叠加渲染都在 Adreno GPU 上运行,使 CPU 保持空闲并持续为推理供给数据。

灵活的 AI 运行时支持

通过 LiteRT/TFLite、ONNX、Qualcomm AI Engine Direct(QNN)或 SNPE 运行模型。可按模型选择,无需重写管道。

Qualcomm AI Hub 集成

Qualcomm AI Hub 下载预训练的量化模型,并直接在参考管道中运行。

IM SDK 管道的工作原理

一个典型的视觉 AI 管道包含五个阶段。IM SDK 在专用硬件上加速高亮显示的(⚡)阶段,并以零拷贝 DMA-buf 句柄的形式在各阶段之间传递帧。 有关构建这些管道的逐阶段指南,请参见 Discover SDKs 中的构建 AI 管道插件参考

为什么零拷贝(zero-memcpy)很重要

在朴素的管道中,每个阶段都会将帧复制到自己的缓冲区中,消耗内存带宽和 CPU 周期,并增加延迟。而 IM SDK 让同一个帧缓冲区以共享的 DMA-buf 句柄形式在解码 → 预处理 → 推理 → 叠加 → 编码之间流转:
  • 摄像头 ISP 只写入一次帧数据;GPU 和 NPU 读取同一物理缓冲区,引擎之间无需 memcpy
  • 插件通过 GStreamer 的分配查询(allocation-query)机制自动协商 DMA-buf 分配;当管道中的每个阶段都支持时即可启用零拷贝(例如,在解码/编码元素上设置 capture-io-mode=dmabuf / output-io-mode=dmabuf-import)。
  • 结果是更低的内存流量、更低的 CPU 负载和更低的端到端延迟,这对高分辨率和多流工作负载尤为重要。

在 GPU 上进行前处理和后处理

只有当 NPU 从不等待 CPU 时,NPU 上的推理才够快。IM SDK 将数据整形工作放到 Adreno GPU 上运行:
  • 预处理qtimlvconverter 直接在 GPU 上执行色彩空间转换和张量布局变换,生成模型所需的精确张量,避免推理前出现 CPU 瓶颈。
  • 后处理qtimlpostprocess 将模型的输出张量解码为结构化元数据(边界框、标签、掩码),qtivoverlay 则在 GPU 上就地将这些元数据绘制回帧上。

后续步骤

下载用于开发的源代码

设置 Qualcomm IM SDK 可扩展 SDK(eSDK)并下载源代码,以开发 AI/ML 应用和插件代码。

在应用中集成自定义 AI 模型

选择合适的 Qualcomm SDK 路径,使用 Qualcomm IM SDK 或 Qualcomm AI Runtime SDK 在应用中部署自定义 AI 模型。

为自定义模型添加后处理支持

使用 qtimlpostprocess 插件为 Qualcomm IM SDK 管道添加自定义模型后处理支持。