> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 显示概述

Qualcomm<sup>®</sup> Adreno™ 显示处理单元(DPU)提供硬件加速的图像处理。DPU 从内存中获取像素数据,并通过标准接口将其发送到显示外设。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/qualcomm-staging/Technologies/Display/media/qli-display/overview1_colourchange.svg" alt="图:DPU 架构" />

  <p className="text-sm text-gray-700">**图:DPU 架构**</p>
</div>

DPU 提供以下图像处理和接口功能:

* **图像处理**包括以下内容:
  * **合成**:将各个图层混合为单个帧并将其发送到显示面板
  * **缩放**:支持对源图像进行放大和缩小,以匹配面板分辨率
  * **颜色格式转换**:将颜色从一种颜色格式转换为另一种颜色格式(从 YUV 到 RGB)
  * **色彩空间转换**:将颜色从一种色彩空间转换为另一种色彩空间(sRGB、P3 和 BT2020)
  * **色彩处理**:增强色彩以获得更好的视觉质量
* **接口**:使用移动行业处理器接口显示串行接口(MIPI DSI)连接各种面板,并使用 DisplayPort 接口连接电视或显示器
  * **MIPI DSI**:定义主机处理器与外围设备之间的协议,这些协议遵循 MIPI 联盟针对移动设备接口的规范
  * **DisplayPort**:作为数字显示接口,主要将视频源连接到显示设备(如计算机显示器),还可以传输音频、USB 和其他形式的数据

[Qualcomm<sup>®</sup> Intelligent Multimedia SDK(IM SDK)](https://imsdkdocs.qualcomm.com/)和 `libdrm` API 提供对 Adreno DPU 引擎硬件能力的访问。

## 显示架构

本部分介绍 Qualcomm Linux 显示子系统硬件和软件架构中的主要组件。

### 显示硬件架构

硬件架构包括用于源和目标处理、图层混合、压缩以及显示接口的组件。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/qualcomm-staging/Technologies/Display/media/qli-display/DPU_hardware_architecture1_colourchange.svg" alt="图:DPU 硬件架构框图" />

  <p className="text-sm text-gray-700">**图:DPU 硬件架构框图**</p>
</div>

下表列出了显示硬件架构的组件。

**表:显示硬件架构组件**

| **组件** | **说明** |
| - | - |
| 总线接口 | 从内存中获取数据以进行处理 |
| 源表面处理 | 读取来自游戏和视频应用程序的 RGB 和 YUV 表面。对源执行格式转换和质量改进。 |
| 混合 | 将各源表面混合并合成在一起 |
| 目标表面处理 | 根据面板特性转换、校正和调整数据 |
| 压缩 | 通过向显示器发送压缩的显示缓冲区来降低带宽和功耗 |
| 显示接口 | 为连接的显示外设生成时序 |

有关显示硬件架构的详细信息仅向具有授权访问权限的持证开发者提供。有关更多信息,请参阅 [Qualcomm Linux Display Guide - Addendum](https://dragonwingdocs.qualcomm.com/Technologies/Display/display-addendum-overview)。

### 显示软件架构

显示子系统由 Wayland(一种显示服务器协议)及其合成器(如 Weston)组成。Wayland 使用客户端-服务器模型,其中客户端应用程序与 Wayland 服务器进行交互。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/qualcomm-staging/Technologies/Display/media/qli-display/display_software_architecture.svg" alt="图:显示软件架构框图" />

  <p className="text-sm text-gray-700">**图:显示软件架构框图**</p>
</div>

显示软件架构的组件如下:

**表:显示软件架构组件**

| **组件** | **说明** |
| - | - |
| Wayland sink | Wayland sink 插件与 Weston 子系统通信以渲染显示。 |
| Wayland 合成器(Weston) | Wayland 合成器使用 Wayland 协议作为显示服务器。该合成器在系统层面处理合成和渲染需求,并作为系统中的独立进程运行。Weston 是 Wayland 合成器的参考实现。 |
| 直接渲染管理器(DRM)后端 | DRM 后端软件框架管理 Qualcomm Adreno DPU 硬件资源。它为每个连接的显示器选择最佳的合成策略,并为从客户端接收的图层堆栈分配显示处理器硬件资源。 |
| `libdrm` | `libdrm` 库提供用于访问 DRM I/O 控制(IOCTL)的 API。 |
| DRM/KMS 框架 | DRM/KMS 框架提供内核和用户空间级别的接口,借助 `libdrm` 库访问相关的硬件功能、配置和硬件加速。 |
| Adreno DPU 驱动程序 | Adreno DPU 驱动程序管理通往不同面板接口的所有像素数据路径。 |
| Adreno DPU | Adreno DPU 是一个硬件加速引擎,以最低的功耗执行图像处理和接口连接。 |

#### 软件 API

Qualcomm Linux 提供以下显示 API:

* **Weston API**:便于与 DRM 合成器进行交互。有关 Weston API,请参阅 [Wayland 客户端 API](https://wayland.freedesktop.org/docs/html/apb.html) 和 [Wayland 服务器 API](https://wayland.freedesktop.org/docs/html/apc.html)。
* **`libdrm` API**:便于与 DRM/KMS 框架进行交互。有关这些 API,请参阅 [libdrm](https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html)。

Qualcomm 提供基于 GStreamer 的插件。您可以从 [IM SDK 插件](https://imsdkdocs.qualcomm.com)将 Waylandsink 插件添加到您的媒体管线中。

有关更多信息,请参阅 [GStreamer 应用程序开发和管线创建](https://gstreamer.freedesktop.org/documentation/application-development/basics/index.html?gi-language=c)。
