7.2. Amlogic C3 影像訊號處理 (C3ISP) 驅動程式¶
7.2.1. 簡介¶
本文件介紹了位於 drivers/media/platform/amlogic/c3/isp 下的 Amlogic C3ISP 驅動程式。
該驅動程式的當前版本支援 Amlogic C308L 處理器上的 C3ISP。
該驅動程式實現了 V4L2、媒體控制器和 V4L2 子裝置介面。支援核心中使用 V4L2 子裝置介面的攝像頭感測器。
該驅動程式已在 AW419-C308L-Socket 平臺上進行過測試。
7.2.2. Amlogic C3 ISP¶
C308L 處理器上發現的且驅動程式支援的攝像頭硬體包括:
1 個 MIPI-CSI-2 模組:處理 MIPI CSI-2 接收器的物理層,並接收來自連線的攝像頭感測器的資料。
1 個 MIPI-ADAPTER 模組:組織 MIPI 資料以滿足 ISP 輸入要求並將 MIPI 資料傳送到 ISP。
1 個 ISP(影像訊號處理)模組:包含影像處理硬體塊的流水線。 ISP 流水線的末端包含三個調整大小器,每個調整大小器都連線到 DMA 介面,該介面將輸出資料寫入記憶體。
下面介紹了 C3 ISP 的高階功能檢視。
+----------+ +-------+
| Resizer |--->| WRMIF |
+---------+ +------------+ +--------------+ +-------+ |----------+ +-------+
| Sensor |--->| MIPI CSI-2 |--->| MIPI ADAPTER |--->| ISP |---|----------+ +-------+
+---------+ +------------+ +--------------+ +-------+ | Resizer |--->| WRMIF |
+----------+ +-------+
|----------+ +-------+
| Resizer |--->| WRMIF |
+----------+ +-------+
7.2.3. 驅動程式架構和設計¶
為了對模組之間的硬體連結進行建模,並公開一個乾淨、邏輯和可用的介面,驅動程式註冊了以下 V4L2 子裝置:
1 個 c3-mipi-csi2 子裝置 - MIPI CSI-2 接收器
1 個 c3-mipi-adapter 子裝置 - MIPI 介面卡
1 個 c3-isp-core 子裝置 - ISP 核心
3 個 c3-isp-resizer 子裝置 - ISP 調整大小器
c3-isp-core 子裝置連結到 2 個影片裝置節點,用於統計資料捕獲和引數程式設計
c3-isp-stats 捕獲影片裝置節點用於統計資料捕獲
c3-isp-params 輸出影片裝置用於引數程式設計
每個 c3-isp-resizer 子裝置都連結到一個捕獲影片裝置節點,從中捕獲幀
c3-isp-resizer0 連結到 c3-isp-cap0 捕獲影片裝置
c3-isp-resizer1 連結到 c3-isp-cap1 捕獲影片裝置
c3-isp-resizer2 連結到 c3-isp-cap2 捕獲影片裝置
媒體控制器流水線圖如下所示(連線了 IMX290 攝像頭感測器):
媒體流水線拓撲¶
7.2.4. 實現¶
ISP 硬體的執行時配置在 c3-isp-params 影片裝置節點上執行,使用 V4L2_META_FMT_C3ISP_PARAMS 作為資料格式。緩衝區結構由 c3_isp_params_cfg 定義。
統計資料是從 c3-isp-stats 影片裝置節點捕獲的,使用 V4L2_META_FMT_C3ISP_STATS 資料格式。
最終圖片大小和格式使用 V4L2 影片捕獲介面在 c3-isp-cap[0, 2] 影片裝置節點上配置。
Amlogic C3 ISP 由 libcamera 支援,具有專用的流水線處理程式和演算法,可執行執行時影像校正和增強。