> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.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://mintcdn.com/qualcomm-prod/h7j64QujhJHkLxyj/Technologies/Display/media/qli-display/overview1_colourchange.svg?fit=max&auto=format&n=h7j64QujhJHkLxyj&q=85&s=7c4be32c9f330d9631736936d43e63eb" alt="图：DPU 架构" width="604" height="203" data-path="Technologies/Display/media/qli-display/overview1_colourchange.svg" />

  <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://dragonwingdocs.qualcomm.com/SDKs/IMSDK/index)和 `libdrm` API 公开了 Adreno DPU 引擎的硬件能力。

<Note>
  请参阅 Qualcomm<sup>®</sup> Linux<sup>®</sup> 支持的[硬件 SoC](https://dragonwingdocs.qualcomm.com/Hardware-SoCs/)。
</Note>

## 显示架构

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

### 显示硬件架构

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

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/mGpYCfBsZaJSFIEo/Technologies/Display/media/qli-display/DPU_hardware_architecture1_colourchange.svg?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=6cdd7e40660c8f48ed8721de4c59f661" alt="图：DPU 硬件架构框图" width="278" height="386" data-path="Technologies/Display/media/qli-display/DPU_hardware_architecture1_colourchange.svg" />

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

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

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

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

有关显示硬件架构的详细信息，仅向具有授权访问权限的获得许可的开发者提供。有关更多信息，请参阅 [Qualcomm Linux Display Guide - Addendum](https://docs.qualcomm.com/doc/80-80023-18A/topic/architecture.html#high-level-display-hardware-architecture)。

### 显示软件架构

显示子系统由显示服务器协议 Wayland 及其合成器（例如 Weston）组成。Wayland 使用客户端-服务器模型，客户端应用程序与 Wayland 服务器交互。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/mGpYCfBsZaJSFIEo/Technologies/Display/media/qli-display/display_software_architecture.svg?fit=max&auto=format&n=mGpYCfBsZaJSFIEo&q=85&s=dfa10d6d31daf25edea38e5cb6546fd3" alt="图：显示软件架构框图" width="588" height="599" data-path="Technologies/Display/media/qli-display/display_software_architecture.svg" />

  <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 client APIs](https://wayland.freedesktop.org/docs/html/apb.html) 和 [Wayland server APIs](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://docs.qualcomm.com/doc/80-80022-50/topic/qim-sdk-plugins.html)将 Waylandsink 插件添加到你的媒体流水线中。

有关更多信息，请参阅 [GStreamer application development and pipeline creation](https://gstreamer.freedesktop.org/documentation/application-development/basics/index.html?gi-language=c)。
