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 管理