The video software stack consists of a client application that interacts with the Adreno VPU using the V4L2 framework.
The following figure shows the video software architecture for the decoder and the encoder. The image on the left shows the decoder architecture, and the image on the right shows the encoder architecture.

Figure: Video decoder and encoder software architecture
The following table lists the components of the video software architecture:
Table: Components of video software architecture
| Component | Description |
|---|
| User application | Interacts with the FileSource for decoder and the Camera Source for encoder based on GStreamer/V4L2 |
| V4L2 framework | - Interacts with user application and the Adreno VPU driver
- Handles events, callbacks, and buffer management
|
| Adreno VPU driver | - Acts as an entry point to the video kernel-mode driver (KMD)
- Common driver for the encoder and decoder that controls the Adreno VPU
- Manages the video driver state machine, buffer allocation, clock/bus management, and communication with Adreno VPU using the Host Firmware Interface (HFI)
|
| Adreno VPU | Functions as a hardware accelerated engine that decodes and encodes video with minimal power consumption |
Video capabilities
QCS6490
IQ-8275
IQ-9075
QCS615
The Adreno VPU on QCS6490 is a sixth-generation video processing unit that comes with the following capabilities:
Table: Adreno VPU features and capabilities for QCS6490
| Feature | Capability |
|---|
| Video decode | Up to 4096 × 2160 at 60 fps for H.264/HEVC/VP9 |
| Video encode | Up to 4096 × 2160 at 30 fps for H.264/HEVC |
| Multichannel Capability | | Config#1 | Config#2 | - 8x of 1920 × 1088 at 30 fps
- 16x of 1280 × 720 at 30 fps
- 16x of 720 × 480 at 30 fps
| - 8x of 1920 × 1088 at 30 fps
- 16x of 1280 × 720 at 30 fps
- 16x of 720 × 480 at 30 fps
|
|
| High frame rate capture | 1280 × 720 at 480 fps or 1920 × 1088 at 240 fps |
| Maximum macroblocks per second | 2088960 The maximum number of macroblocks per second is calculated using the following formula:
(aligned width×aligned height×fps)/(macroblock size)
Example: (4096 × 2176 × 60) / 256 = 2,088,960 |
or more information on the decode and encode capabilities of QCS6490, see Advanced video specifications.
The Adreno VPU on Dragonwing IQ-8275 is a seventh-generation video processing unit that comes with the following capabilities:
Table: Adreno VPU features and capabilities for IQ-8275
| Feature | Capability |
|---|
| Video decode | - Up to 3840 × 2160 at 120 fps for H.264/HEVC/VP9
- Up to 3840 × 2160 at 60 fps for AV1
|
| Video encode | Up to 4096 × 2160 at 60 fps for H.264/HEVC |
| Multichannel Capability | | Config#1 | Config#2 | - 16x of 1920 × 1088 at 30 fps
- 16x of 1280 × 720 at 30 fps
- 16x of 720 × 480 at 30 fps
| - 16x of 1920 × 1088 at 30 fps
- 24x of 1280 × 720 at 30 fps
- 24x of 720 × 480 at 30 fps
|
|
| High framerate capture | 1920 × 1088 at 240 fps or 3840 × 2160 at 60 fps |
| Maximum macroblocks per second | 3916800 The maximum number of macroblocks per second is calculated using the following formula: (alignedwidth×alignedheight×fps)/(macroblocksize) For example, (3840 × 2176 × 120)/256 = 3916800 |
or more information on the decode and encode capabilities of Dragonwing IQ-8275, see Advanced video specifications.
The Adreno VPU on Dragonwing IQ-9075 is a seventh-generation video processing unit that comes with the following capabilities:
Table: Adreno VPU features and capabilities for IQ-9075
| Feature | Capability |
|---|
| Video decode | - Up to 7680 × 4320 at 60 fps or 3840 × 2160 at 240 fps for H.264/HEVC/AV1
- Up to 3840 × 2160 at 240 fps for VP9
|
| Video encode | Up to 7680 × 4320 at 30 fps for H.264/HEVC |
| Multichannel Capability | | Config#1 | Config#2 | - 16x of 1920 × 1088 at 30 fps
- 16x of 1280 × 720 at 30 fps
- 16x of 720 × 480 at 30 fps
| - 32x of 1920 × 1088 at 30 fps
- 32x of 1280 × 720 at 30 fps
- 32x of 720 × 480 at 30 fps
|
|
| High frame rate capture | 1920 × 1088 at 480 fps or 3840 × 2160 at 120 fps |
| Maximum macroblocks per second | 7833600 The maximum number of macroblocks per second is calculated using the following formula: (alignedwidth×alignedheight×fps)/(macroblocksize) For example, (3840 × 2176 × 240)/256 = 7833600 |
or more information on the decode and encode capabilities of Dragonwing IQ-9075, see Advanced video specifications.
The Adreno VPU on QCS615 is a sixth-generation video processing unit that comes with the following capabilities:
Table: Adreno VPU features and capabilities for QCS615
| Feature | Capability |
|---|
| Video decode | Up to 3840 × 2160 at 30 fps for H.264/HEVC/VP9 |
| Video encode | Up to 3840 × 2160 at 30 fps for H.264/HEVC |
| Multichannel Capability | | Config#1 | - 4x of 1920 × 1088 at 30 fps
- 8x of 1280 × 720 at 30 fps
- 16x of 720 × 480 at 30 fps
|
|
| High frame rate capture | 1280 × 720 at 240 fps or 1920 × 1080 at 120 fps |
| Maximum macroblocks per second | 976500 The maximum number of macroblocks per second is calculated using the following formula: (alignedwidth×alignedheight×fps)/(macroblocksize) For example, (3840 × 2176 × 30)/256 = 976500 |
or more information on the decode and encode capabilities of QCS615, see Advanced video specifications.
Next steps