關於 DXVA 2.0
DirectX 影片加速 (DXVA) 是 API 和對應的 DDI,可用來使用硬體加速來加速視訊處理。 軟體編解碼器和軟體視訊處理器可以使用 DXVA 將特定 CPU 密集作業卸除至 GPU。 例如,軟體譯碼器可以將反向離散餘弦轉換 (iDCT) 卸除至 GPU。
在 DXVA 中,圖形硬體驅動程式會實作一些譯碼作業。 這組功能稱為 快捷鍵。 其他譯碼作業是由使用者模式應用程式軟體實作,稱為 主機譯碼器 或 軟體譯碼器。 (主機譯碼器和軟體譯碼器等詞相等。加速器所執行的處理稱為非主機處理。 通常,加速器會使用 GPU 來加速某些作業。 每當加速器執行譯碼作業時,主機譯碼器必須傳達給加速器緩衝區,其中包含執行作業所需的資訊
DXVA 2 API 需要 Windows Vista 或更新版本。 Windows Vista 中仍支援 DXVA 1 API,以提供回溯相容性。 提供的模擬層會在任一版 API 與 DDI 的相反版本之間轉換:
- 如果圖形驅動程式符合 Windows 顯示驅動程式模型 (WDDM),DXVA 1 API 呼叫會轉換成 DXVA 2 DDI 呼叫。
- 如果圖形驅動程式使用較舊的 Windows XP 顯示驅動程式模型 (XPDM),DXVA 2 API 呼叫會轉換成 DXVA 1 DDI 呼叫。
下表顯示每個 DXVA API 版本的作業系統需求和支援的視訊轉譯器。
API 版本 | 需求 | 影片轉譯器支援 |
---|---|---|
DXVA 1 | Windows 2000 或更新版本 | 重迭混音器、VMR-7、VMR-9(僅限 DirectShow) |
DXVA 2 | Windows Vista | EVR (DirectShow 和 Media Foundation) |
在 DXVA 1 中,軟體譯碼器必須透過影片轉譯器存取 API。 不需要呼叫影片轉譯器,即可使用 DXVA 1 API。 DXVA 2 已移除此限制。 使用 DXVA 2,主機譯碼器(或任何應用程式)可以透過 IDirectXVideoDecoderService 介面直接存取 API。
DXVA 1 檔說明用於下列影片標準的譯碼結構:
- ITU-T Rec. H.261
- ITU-T Rec. H.263
- MPEG-1 影片
- MPEG-2 主要配置檔影片
下列規格會定義其他視訊標準的 DXVA 擴充功能:
- H.264/AVC 譯碼的 DXVA 規格
- H.264/MPEG-4 AVC Multiview 視訊編碼(MVC)的 DXVA 規格,包括立體聲高配置檔
- MPEG-1 VLD 和合併的 MPEG-1/MPEG-2 VLD 視訊譯碼的 DXVA 規格。
- MPEG-4 第 2 部分影片譯碼的 OFF-Host VLD 模式 DXVA 規格
- Windows Media Video® v8、v9 和 vA 譯碼的 DXVA 規格(包括 SMPTE 421M “VC-1”)
- H.264/MPEG-4 可調整視訊編碼 (SVC) 非主機 VLD 模式譯碼的 DirectX 影片加速 (DXVA) 規格
- VP8 和 VP9 視訊編碼的 DirectX 視訊加速規格
DXVA 1 和 DXVA 2 使用相同的數據結構進行譯碼。 不過,設定譯碼會話的程式已變更。 DXVA 1 會使用「探查和鎖定」機制,其中主機譯碼器可以在加速器上設定所需的組態之前先測試各種設定。 在 DXVA 2 中,加速器會傳回支援的組態清單,而主機譯碼器會從清單中選取一個組態。 下列各節提供詳細資料:
相關主題