系统之家提供 Windows 系统、Ghost 系统、驱动与常用软件的安全下载及安装教程。纯净系统 原版ISO 微软官方镜像 MSDN我告诉你 系统之家 装机吧 小白一键重装 驱动总裁 万能驱动 启动盘制作 Rufus Ventoy UltraISO PE系统 微PE 进BIOS 设置U盘启动 分区工具 DiskGenius 格式化C盘 激活工具 KMS 正版授权 系统补丁 运行库 DirectX VC++ .NET Framework 安全设置 系统优化 备份还原 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

D3D12 視訊編碼

发布时间:2026-08-10 | 浏览:1
📥 下载地址(文章开头)
需要授權才能存取此頁面。 您可以嘗試 登入 或 變更目錄 。 需要授權才能存取此頁面。 您可以嘗試 變更目錄 。 本文提供驅動程式開發人員的 Direct3D12 視訊編碼功能的一般資訊。 如需詳細資訊,包括應用程式層級的詳細資料,請參閱 D3D 視訊編碼規格 。 關於 Direct3D 12 視訊編碼 在 Windows 11 (WDDM 3.0) 之前,DirectX 12 提供了應用程式和驅動程式層級介面(API 和 DDI),以支援多個視訊應用程式的 GPU 加速,包括視訊解碼、視訊處理和運動估計。 從 Windows 11 開始,D3D12 會將視訊編碼功能新增至現有的視訊 API/DDI 系列。 此功能提供一組一致的編碼 API/DIS,與現有的 D3D12 架構一致,並允許開發人員使用 GPU 加速視訊引擎執行視訊編碼。 視訊編碼架構可讓您存取視訊編碼器硬體加速功能。 它可以用於物聯網(IoT)、雲端、媒體API、機器學習(ML)和遊戲串流等不同場景。 Windows 11 版本 24H2 (WDDM 3.2) 中新增了對 AV1 編碼的支援。 如需詳細資訊,請參閱 D3D12 AV1 視訊編碼 。 從 Windows 11 開始,支援的編解碼器是 H.264 和 HEVC,不過 D3D12 視訊編碼架構為較新的編解碼器 (例如 AV1) 提供開放的擴充性。 框架介面的編解碼器特定層面會委派給編解碼器特定結構及其對聯合類型的存取。 例如, D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_0082_0 結構包含聯集,其中包含編解碼器特定 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_0082_0 指標,以及包含編解碼器特定組態資訊的 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_0082_0 結構。 為了保留擴充性的二進位介面相容性,聯集類型一律包含編解碼器特定結構的指標。 聯集類型根據主機架構的指標大小具有恆定大小。 此決策也會防止包含共用體類型成員(或含有匿名共用體)的結構在擴充介面時改變其類型大小。 有些聯集只包含列舉類型的指標;為了保持一致,如果新的編解碼器需要比列舉更複雜的類型來表示這些概念,這些列舉類型也會被引用為指標。 現有的視訊相關架構已擴充,以允許駕駛員報告視訊編碼支援和功能。 D3D12DDI_FEATURE_VERSION_VIDEO_0083_0 是定義 Windows 11 中引進的所有 D3D12 視訊編碼里程碑的第一個完整實作的版本號碼。 D3D12DDI_FEATURE_VERSION_VIDEO_0083_0 是定義 Windows 11 中引進的所有 D3D12 視訊編碼里程碑的第一個完整實作的版本號碼。 已擴充D3D12DDICAPS_TYPE_VIDEO_0020 列舉,以包含下列視訊編碼支援值: D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC = 31。 D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_PROFILE_LEVEL = 32, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 33, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_OUTPUT_RESOLUTION = 34. D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_INPUT_FORMAT = 35, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_RATE_CONTROL_MODE = 36, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_INTRA_REFRESH_MODE = 37, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 38, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_HEAP_SIZE = 39, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC_CONFIGURATION_SUPPORT = 40, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_SUPPORT = 41; D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 42, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_RESOURCE_REQUIREMENTS = 43 D3D 執行階段會呼叫驅動程式的 PFND3D12DDI_VIDEO_GETCAPS 回呼來查詢視訊編碼支援。 已擴充D3D12DDICAPS_TYPE_VIDEO_0020 列舉,以包含下列視訊編碼支援值: D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC = 31。 D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_PROFILE_LEVEL = 32, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 33, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_OUTPUT_RESOLUTION = 34. D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_INPUT_FORMAT = 35, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_RATE_CONTROL_MODE = 36, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_INTRA_REFRESH_MODE = 37, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 38, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_HEAP_SIZE = 39, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC_CONFIGURATION_SUPPORT = 40, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_SUPPORT = 41; D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 42, D3D12DDICAPS_TYPE_VIDEO_0080_ENCODER_RESOURCE_REQUIREMENTS = 43 D3D 執行階段會呼叫驅動程式的 PFND3D12DDI_VIDEO_GETCAPS 回呼來查詢視訊編碼支援。 支援視訊編碼的驅動程式會為 D3D 執行階段提供 D3D12DDI_DEVICE_FUNCS_VIDEO_0082_0 結構中其視訊編碼回呼函式的指標。 支援視訊編碼的驅動程式會為 D3D 執行階段提供 D3D12DDI_DEVICE_FUNCS_VIDEO_0082_0 結構中其視訊編碼回呼函式的指標。
📥 下载地址(文章中间)
驅動程式會實作下列回呼函式,以支援 D3D12 視訊編碼。 建立代表視訊編碼器的驅動程式物件: PFND3D12DDI_CALCPRIVATEVIDEOENCODERSIZE_0082_0 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CREATEVIDEOENCODER_0082_0 會建立實際的視訊編碼器物件,以保存視訊編碼會話的狀態。 建立代表視訊編碼器的驅動程式物件: PFND3D12DDI_CALCPRIVATEVIDEOENCODERSIZE_0082_0 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CALCPRIVATEVIDEOENCODERSIZE_0082_0 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CREATEVIDEOENCODER_0082_0 會建立實際的視訊編碼器物件,以保存視訊編碼會話的狀態。 PFND3D12DDI_CREATEVIDEOENCODER_0082_0 會建立實際的視訊編碼器物件,以保存視訊編碼會話的狀態。 建立代表視訊編碼器堆積的驅動程式物件: PFND3D12DDI_CALCPRIVATEVIDEOENCODERHEAPSIZE_0080_2 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2 會建立視訊編碼器堆積物件,其中包含解析度相依的驅動程式資源和狀態。 建立代表視訊編碼器堆積的驅動程式物件: PFND3D12DDI_CALCPRIVATEVIDEOENCODERHEAPSIZE_0080_2 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CALCPRIVATEVIDEOENCODERHEAPSIZE_0080_2 會計算 D3D 執行階段需要配置給驅動程式物件的記憶體數量。 PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2 會建立視訊編碼器堆積物件,其中包含解析度相依的驅動程式資源和狀態。 PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2 會建立視訊編碼器堆積物件,其中包含解析度相依的驅動程式資源和狀態。 對框架進行編碼: PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0 會將編碼框架作業記錄到命令清單。 在編碼作業之後,也必須呼叫 PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 ,才能將編碼作業的輸出中繼資料解析為可讀取的格式。 驅動程式中解析後的中繼資料版面配置類似於 規格中 圖表所示的範例。 PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0 會將編碼框架作業記錄到命令清單。 PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0 會將編碼框架作業記錄到命令清單。 在編碼作業之後,也必須呼叫 PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 ,才能將編碼作業的輸出中繼資料解析為可讀取的格式。 驅動程式中解析後的中繼資料版面配置類似於 規格中 圖表所示的範例。 在編碼作業之後,也必須呼叫 PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 ,才能將編碼作業的輸出中繼資料解析為可讀取的格式。 驅動程式中解析後的中繼資料版面配置類似於 規格中 圖表所示的範例。 銷毀視訊編碼器和相關的堆: PFND3D12DDI_DESTROYVIDEOENCODER_0080 PFND3D12DDI_DESTROYVIDEOENCODERHEAP_0080 PFND3D12DDI_DESTROYVIDEOENCODER_0080 PFND3D12DDI_DESTROYVIDEOENCODER_0080 PFND3D12DDI_DESTROYVIDEOENCODERHEAP_0080 PFND3D12DDI_DESTROYVIDEOENCODERHEAP_0080 下列測試包含在 Windows 硬體實驗室套件 (WHLK) 中。 詳情請參閱 WHLK。 D3D12 視訊編碼支援可在只有 D3D12 可用的平臺上啟用可攜式硬體加速視訊編碼。 這些平臺包括雲端運算和 IoT 平臺所使用的各種 OneCore SKU。 視訊編碼加速可在這些案例中使用,而不需要使用特定於平臺的解決方案。 所有硬體廠商都可以存取低階且可攜式方式的視訊編碼功能。 此可及性允許更高層級的媒體 API(例如 Media Foundation)可以在此 API 之上建構其媒體層,從而抽象化不同的硬體平臺。 鑑於 API 的低階設計,這些較高層級的媒體層可以透過對視訊編碼會話的同步處理和記憶體配置/駐留方面進行細緻控制,例如完全控制參考圖片管理和位流標頭寫入責任,針對其情境進行優化。 這種將責任轉移到位於此 API 之上的層也允許硬體供應商在媒體層中擁有一組一致的編碼策略(例如,DPB 啟發式方法,例如自適應 GOP),這些策略可以在不同的硬體平台上重複使用。 與 D3D 圖形、計算和機器學習的互通性 D3D12 視訊編碼 API 可在 D3D12 視訊編碼與 D3D12 圖形、計算和 ML 案例之間提供有效率的互通性。 這種互通性對於在相機串流上執行 ML 推論等案例很有趣。 D3D12 視訊編碼 API 可啟用需要高效能低階 API 的遊戲串流案例。 想要嘗試使用 Ask Learn 來釐清或引導您完成本主題嗎? Last updated on 2025-07-18
📥 下载地址(文章结尾)