drm/meson AmLogic Meson 影片處理單元¶
VPU 處理全域性影片處理,包括時鐘門控、塊復位線和電源域的管理。
缺少什麼
整個影片處理硬體塊的完全重置
VPU 時鐘的縮放和設定
匯流排時鐘門控
為影片處理硬體塊供電
為 HDMI 控制器和 PHY 供電
影片處理單元¶
Amlogic Meson 顯示控制器由幾個元件組成,這些元件將在下面進行文件說明
DMC|---------------VPU (Video Processing Unit)----------------|------HHI------|
| vd1 _______ _____________ _________________ | |
D |-------| |----| | | | | HDMI PLL |
D | vd2 | VIU | | Video Post | | Video Encoders |<---|-----VCLK |
R |-------| |----| Processing | | | | |
| osd2 | | | |---| Enci ----------|----|-----VDAC------|
R |-------| CSC |----| Scalers | | Encp ----------|----|----HDMI-TX----|
A | osd1 | | | Blenders | | Encl ----------|----|---------------|
M |-------|______|----|____________| |________________| | |
___|__________________________________________________________|_______________|
影片輸入單元¶
VIU 處理畫素掃描輸出和基本顏色空間轉換。 我們處理以下功能
OSD1 RGB565/RGB888/xRGB8888 掃描輸出
RGB 轉換為 x/cb/cr
逐行或隔行緩衝區掃描輸出
在 Vsync 上提交 OSD1
GXL/GXM 的 HDR OSD 矩陣
缺少什麼
BGR888/xBGR8888/BGRx8888/BGRx8888 模式
YUV4:2:2 Y0CbY1Cr 掃描輸出
從 4:2:2 輸入轉換為 YUV 4:4:4
顏色鍵 Alpha 匹配
大端掃描輸出
X/Y 反向掃描輸出
全域性 Alpha 設定
OSD2 支援,需要在 Vsync 上進行隔行切換
OSD1 完全縮放以支援電視過掃描
影片後處理¶
VPP 處理 VIU 掃描輸出後的所有後處理。我們處理以下後處理
- Postblend,僅混合 OSD1
我們排除 OSD2、VS1、VS1 和 Preblend 輸出
- 僅用於 OSD1 的垂直 OSD 縮放器,我們停用垂直縮放器並
僅將其用於隔行掃描輸出
具有預設 Amlogic 值的中間 FIFO
缺少什麼
用於影片疊加預縮放的 Preblend
用於游標幀緩衝的 OSD2 支援
後混合之前的影片預縮放
完全垂直/水平 OSD 縮放以支援電視過掃描
HDR 轉換
影片編碼器¶
VENC 處理畫素編碼為輸出格式。我們處理以下編碼
透過 ENCI 編碼器和 VDAC 數模轉換器的 CVBS 編碼
透過 ENCI_DIV 和 ENCP 的 TMDS/HDMI 編碼
為 HDMI 模式設定更多時鐘頻率
缺少什麼
透過 ENCL 的 LCD 面板編碼
透過 ENCT 的 TV 面板編碼
VENC 路徑
_____ _____ ____________________
vd1---| |-| | | VENC /---------|----VDAC
vd2---| VIU |-| VPP |-|-----ENCI/-ENCI_DVI-|-|
osd1--| |-| | | \ | X--HDMI-TX
osd2--|_____|-|_____| | |\-ENCP--ENCP_DVI-|-|
| | |
| \--ENCL-----------|----LVDS
|____________________|
ENCI 專為 PAl 或 NTSC 編碼而設計,可以透過 VDAC 直接進行 CVBS 編碼,也可以透過 ENCI_DVI 編碼器進行 HDMI 編碼。 ENCP 專為逐行編碼而設計,但也可以生成 1080i 隔行畫素,最初設計用於編碼 VDAC 畫素以輸出 RGB 或 YUV 模擬輸出。 它的輸出僅透過 ENCP_DVI 編碼器用於 HDMI。 ENCL LVDS 編碼器未實現。
ENCI 和 ENCP 編碼器需要為每個支援的模式專門定義的引數,因此無法從標準影片時序中確定。
ENCI end ENCP DVI 編碼器更通用,可以從 ENCI 或 ENCP 生成的畫素資料中生成任何時序,因此可以使用標準影片時序作為硬體引數的來源。
影片時鐘¶
VCLK 是來自專用 PLL 的“畫素時鐘”頻率發生器。我們處理以下編碼
透過 VCLK2 到 VENCI 和 VDAC 塊的 CVBS 27MHz 發生器
HDMI 畫素時鐘生成
缺少什麼
生成 2K/4K 10bit 格式的畫素時鐘
時鐘發生器方案
__________ _________ _____
| | | | | |--ENCI
| HDMI PLL |-| PLL_DIV |--- VCLK--| |--ENCL
|__________| |_________| \ | MUX |--ENCP
--VCLK2-| |--VDAC
|_____|--HDMI-TX
最終時鐘可以從 VCLK 或 VCLK2 獲取輸入,但 VCLK 是 HDMI 時鐘的首選路徑,而 VCLK2 是 CVBS VDAC 時鐘的首選路徑。
VCLK 和 VCLK2 具有 /1、/2、/4、/6 或 /12 的固定分頻時鐘路徑。
PLL_DIV 可以實現額外的分數除法,例如 1.5、3.5、3.75...,以生成特殊的 2K 和 4K 10bit 時鐘。
HDMI 影片輸出¶
HDMI 輸出由以下部分組成
Synopsys DesignWare HDMI 控制器 IP
控制時鐘和 PHY 的 TOP 控制塊
自定義 HDMI PHY,用於將影片轉換為 TMDS 訊號
___________________________________
| HDMI TOP |<= HPD
|___________________________________|
| | |
| Synopsys HDMI | HDMI PHY |=> TMDS
| Controller |________________|
|___________________________________|<=> DDC
HDMI TOP 塊僅支援 HPD 感應。 Synopsys HDMI 控制器中斷透過 TOP 塊中斷路由。 與 TOP 塊和 Synopsys HDMI 控制器的通訊是透過一對 addr+read/write 暫存器完成的。 HDMI PHY 由 HHI 暫存器塊中的暫存器配置。
畫素資料以 4:4:4 格式從 VENC 塊到達,VPU HDMI 多路複用器選擇用於 576i 或 480i 格式的 ENCI 編碼器或用於包括隔行 HD 格式在內的所有其他格式的 ENCP 編碼器。 VENC 在 ENCI 或 ENCP 編碼器的基礎上使用 DVI 編碼器為 HDMI 控制器生成 DVI 時序。
GXBB、GXL 和 GXM 嵌入了帶有 HDCP 和 I2C & S/PDIF 音訊源介面的 Synopsys DesignWare HDMI TX IP 2.01a 版本。
我們處理以下功能
HPD 上升和下降中斷
HDMI 控制器中斷
480i 到 1080p60 的 HDMI PHY 初始化
480i 到 1080p60 的 VENC & HDMI 時鐘設定
480i 到 1080p60 的 VENC 模式設定
缺少什麼
2k && 4k 模式的 PHY、時鐘和模式設定
HDMI 2.0a 的 SDDC 加擾模式
HDCP 設定
CEC 管理