IM SDK 作为 Qualcomm Linux 镜像的一部分随附提供,因此 AI 开发者工作流无需单独安装。有关完整的 SDK 参考(安装替代方案、完整插件目录、管线构建指南和示例应用),请参阅 Discover SDKs → IM SDKs。
为什么使用 IM SDK
一个统一的多媒体 + AI 框架
采集、预处理、推理、后处理和渲染全部位于单条 GStreamer 管线中,而不是把多个独立应用拼接在一起。
默认硬件加速
插件原生使用 Qualcomm CPU、GPU、NPU(HTP)、摄像头 ISP、视频(VPU)和 DSP,让每个阶段在合适的引擎上运行。
零拷贝(零 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 中的 Building AI pipelines 和插件参考。
为什么零拷贝(零 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 管线添加自定义模型后处理支持。

