QIM SDK Development Guide
The Qualcomm Intelligent Multimedia SDK (IM SDK) is a GStreamer-based AI/ML application development framework. It provides ready-to-use CLI tools and hardware-accelerated plugins covering the complete pipeline from video capture, AI inference, to result rendering.
Relationship with QAIRT
QIM SDK sits on top of QAIRT SDK:
| Layer | Contents | Status on Q900 |
|---|---|---|
| QAIRT Runtime | QNN / SNPE / LiteRT runtime libraries | Installed via apt (qairt-libs) |
| QIM SDK Plugins | GStreamer ML plugins (capture, preprocess, inference, postprocess, render) | Installed via apt |
| QIM SDK Sample Apps | gst-ai-* CLI tools | Installed via apt |
Install QAIRT base libraries first (sudo apt install -y qairt-libs), see the installation steps below.
Prerequisites
- Radxa AIRbox Q900 (QCS9075 / SA8775P, HTP V73 NPU)
- Ubuntu 24.04, with network access
- Display connected (Wayland)
Installation
Step 1: Install QAIRT Base Libraries
sudo apt install -y qairt-libs
Step 2: Install QIM SDK
sudo apt install -y \
gstreamer1.0-tools \
tensorflow-lite-qcom-apps \
gstreamer1.0-qcom-sample-apps \
gstreamer1.0-qcom-python-examples
All ML inference plugins and video processing plugins are automatically installed as dependencies.
Step 3: Verify Installation
ls /usr/bin/gst-ai-*
Expected output: 20 gst-ai-* CLI tools.
Download Models and Test Resources
Use the official script for one-click download:
sudo apt install -y unzip
curl -L -O https://raw.githubusercontent.com/quic/sample-apps-for-qualcomm-linux/refs/heads/main/download_artifacts.sh
chmod +x download_artifacts.sh
sudo ./download_artifacts.sh -v GA1.6-rel -c QCS9075
After download:
| Directory | Contents |
|---|---|
/etc/models/ | 10 .tflite quantized models |
/etc/labels/ | 16 label and config files |
/etc/media/ | 4 test videos |
/etc/configs/ | 38 app config JSONs (from package install) |
Quick Verification
gst-ai-classification --config-file=/etc/configs/config_classification.json
On success, the display shows the test video with classification labels overlaid. The terminal output includes Using DSP Delegate and Pipeline state changed to PLAYING.
Press Ctrl + C to stop.
Normally you do not need to manually set
XDG_RUNTIME_DIRorWAYLAND_DISPLAY— these are configured automatically on SSH login.
Available Sample Applications
The following apps have been verified on Q900 (QCS9075):
| Application | Description | Model | NPU |
|---|---|---|---|
| Image Classification | Identify subjects in images | InceptionV3 | DSP |
| Object Detection | Detect and locate objects | YOLOX | DSP |
| Pose Detection | Human body keypoint detection | HRNet | DSP |
| Image Segmentation | Per-pixel semantic segmentation | DeepLabV3+ | DSP |
| Monocular Depth | Depth heatmap estimation | MiDaS V2 | DSP |
| Super Resolution | Low-resolution upscaling | QuickSRNet | DSP (partial) |
| Audio Classification | Audio event classification | YAMNet | CPU |
| Face Detection | Face landmark detection | Lightweight Face Detection | DSP |
| Daisy-Chain Detection & Classification | Cascaded detection + classification | YOLOX + InceptionV3 | DSP |
| Daisy-Chain Detection & Pose | Cascaded detection + pose | YOLOX + HRNet | DSP |
| Parallel AI Fusion | 4-model simultaneous inference | YOLOX + InceptionV3 + HRNet + DeepLabV3+ | DSP |
| Multistream Inference | Multi-stream concurrent detection | YOLOX | DSP |
| Event Encoder | Detection event encoding | YOLOX | DSP |
| Metadata Parser | Detection metadata export | YOLOX | DSP |
See the IM SDK Reference Manual Chapter 3 for the full list.
Reference
- Python GStreamer Apps — Python binding examples
- Build from Source — Compile custom GStreamer apps on-device
Troubleshooting
No display output
Check that the Wayland socket exists:
ls $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
DSP inference failure
Verify FastRPC device nodes exist:
ls /dev/fastrpc-cdsp*
If no output, see Enable NPU.
Model files missing
Re-run the download script:
sudo ./download_artifacts.sh -v GA1.6-rel -c QCS9075