# Overview Source: [https://docs.qualcomm.com/doc/80-70014-20/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-20/topic/overview.html) The Qualcomm® Adreno™ Video Processing Unit (VPU) supports the hardware-based video decoding and encoding for various video codecs. The video encoding and decoding in Qualcomm-based SDKs are offloaded to the video engines to ensure that the CPU and GPU are free for other operations. The video features of the Adreno VPU engines are exposed through the Qualcomm Linux Intelligent Multimedia Software Development Kit (QIM SDK) framework and the V4L2 (Video for Linux, version 2) APIs. For more information, see [Qualcomm Linux Intelligent Multimedia Software Development Kit (QIM SDK) Reference](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-50/overview.html). The following figure shows the high-level architecture of the video software. Applications based on the V4L2 or GStreamer APIs can offload the encoding or decoding to Adreno VPU using the V4L2 API framework. Figure : High-level architecture of the video software Page-1 Applications (V4L2, GStreamer) Applications (V4L2, GStreamer) V4L2 framework V4L2 framework Adreno VPU driver Adreno VPU driver Adreno VPU Adreno VPU User space User space Kernel space Kernel space Hardware Hardware Adreno VPU firmware Adreno VPU firmware Open source Open source Qualcomm Qualcomm Note: The Qualcomm Linux platform allows you to develop applications for QCS6490 and QCS5430. Last Published: Jul 12, 2024 [Next Topic Getting started](https://docs.qualcomm.com/bundle/publicresource/80-70014-20/topics/samples.md)