Кіріспе

DirectX Video Acceleration (DXVA) - Microsoft Windows және Xbox 360 платформалары үшін, бейне кодтамасын аппараттық жеделдетуге мүмкіндік беретін Microsoft API спецификациясы. Құбыр желісі CPU-ға көп жүктеме түсіретін iDCT, қозғалыс компенсациясы және деинтерляция сияқты операцияларды GPU-ға жүктеуге мүмкіндік береді. DXVA 2.0 видео түсіру және өңдеу операцияларын қоса алғанда, аппараттық жеделдетуге қосымша мүмкіндіктер ұсынады. DXVA бейнекартада қолданылатын бейне көрсету моделімен бірігіп жұмыс істейді. Windows 2000 (DirectX 7) жүйесінде енгізілген және Windows 98 немесе одан кейінгі нұсқаларында қолжетімді DXVA 1.0, үстіңгі жазылым режимін немесе VMR 7/9-ды пайдалануға болады. Тек Windows Vista, Windows 7, Windows 8 және одан кейінгі операциялық жүйелерде қолжетімді DXVA 2.0, Media Foundation (MF) жүйесімен интеграцияланып, MF-дегі Enhanced Video Renderer (EVR) құралын қолданады. Ол сонымен қатар үш қосымша спецификацияны қамтиды: деинтерляция DDI, COPP DDI және ProcAmp DDI. Деинтерляция DDI деинтерляция операциялары үшін қайырымдылық функцияларын анықтайды. COPP (Certified Output Protection Protocol) DDI функциялары шифрлау функцияларын анықтау арқылы DRM қорғалған медиа үшін құбырдың қауіпсіздігін қамтамасыз етуге мүмкіндік береді. ProcAmp DDI бейнені өңдеуден кейін жылдамдату үшін қолданылады. ProcAmp драйвер модулі аппараттық бейне көрсетуші мен дисплей драйвері арасында орналасқан және декомпрессияланған бейнеге өңдеу сүзгілерін қолдану функцияларын ұсынады. DXVA DDI арқылы ашылған функцияларға DirectShow клиенті тікелей қол жеткізе алмайды, бірақ олар бейне көрсетушіге қайырымдылық функциялары ретінде жіберіледі. Осылайша, көрсету құрылғысы құбырды бекітуде маңызды рөл атқарады. DirectX 9.0c нұсқасында H.264 үшін DXVA қолдауы қосылды.

Windows Vista және одан кейінгі нұсқаларда DXVA

DXVA 2.0 бейне құбыржолын іске асыруды жақсартады және бейне түсіруге арналған Capture DDI сияқты көптеген басқа DDI-лерді қосады. DXVA 1.0-мен ортақ DDI-лер де аппараттық үдету арқылы көбірек операцияларды орындау мүмкіндігімен жаңартылды. Сонымен қатар, DDI функциялары тікелей шалушыларға қолжетімді, оларды бейне рендері арқылы жіберудің қажеті жоқ. Осының арқасында бағдарлама медианы тек кодтау үшін (рендерингсіз) немесе өңдеуден кейін өңдеу және рендеринг үшін (декодтаусыз) құбыржол құра алады. Бұл мүмкіндіктер Windows Display Driver Model драйверлерін қажет етеді, бұл DXVA 2.0-ны Windows Vista және Windows Server 2008 жүйелерімен шектейді, егер драйвер WDDM 1.1 стандартына сәйкес болса.

DXVA2 іске асырулары: жергілікті және көшірмелеу

DXVA2 іске асырулары екі нұсқада келеді: түпнұсқа және көшіру. Түпнұсқа іске асыруда декодталған бейне көрсетілгенге дейін GPU жадында сақталады. Видеодекодер аралық өңдеу сүзгісіз тікелей бейнекөрсеткішке қосылуы керек. Бейнекөрсеткіш те DXVA-ны қолдауы тиіс, бұл көрсеткіштерді таңдаудағы мүмкіндіктерді шектейді. Көшіру іске асыруда декодталған бейне GPU жадынан CPU жадына көшіріледі. Бұл іске асыру жоғарыда аталған шектеулерге ие емес және әдеттегі бағдарламалық декодер сияқты жұмыс істейді; алайда, егер GPU өз жадын CPU жадына көшіру үшін жеткілікті жылдам болмаса, бейне кекеуі мүмкін. Егер қосымша өңдеу қажет болмаса, түпнұсқа режимі артықшылықты, себебі қосымша көшіру операциялары GPU жадына қосымша жүктеме салады.