Accelerație video DirectX

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 3 mai 2020; verificările necesită 2 modificări .

DirectX Video Acceleration (abreviat ca DXVA , literalmente rusă accelerare video DirectX ) este o interfață de programare a aplicațiilor (API), o componentă DirectX dezvoltată de Microsoft și concepută pentru a procesa (în primul rând decodifica ) un flux de biți de date video folosind procesoare grafice ( de exemplu, GPU  ) .

DXVA este proiectat să ruleze pe computere compatibile cu PC-uri IBM care rulează sisteme de operare din familia Microsoft Windows și pe consola de jocuri Xbox 360 . Conducta software DXVA permite ca anumite operațiuni care consumă mult resurse, cum ar fi transformarea cosinus discretă , compensarea mișcării și dezintercalarea , să fie executate pe GPU și nu pe CPU . DXVA 2.0 permite redirecționarea mai multor operațiuni către GPU, inclusiv captură video și operațiuni de procesare video.

DXVA funcționează împreună cu DirectShow , care este acceptat de plăcile video . DXVA 1.0, care a fost introdus ca API standard și este disponibil din Windows 2000 , ar putea folosi fie modul de suprapunere , fie VMR 7/9. [1] DXVA 2.0, disponibil numai începând cu Windows Vista , este integrat cu cadrul multimedia Media Foundation și utilizează redarea video Enhanced Video Renderer . [unu]

Prezentare generală

DXVA este folosit de codec-urile video software pentru a defini o conductă specifică codec-ului care este necesară pentru decodarea hardware și redarea unui flux video de către acel codec. Conducta începe cu CPU, care analizează fluxul media și îl convertește în structuri compatibile cu DXVA. DXVA definește un set de operațiuni care pot fi accelerate hardware și o interfață de driver de dispozitiv ( DDI ) care determină dacă un driver de placă video poate gestiona aceste operațiuni în hardware. Dacă orice codec utilizează aceste operațiuni, atunci poate folosi aceste interfețe de driver video pentru a obține acces la accelerarea hardware. Dacă driverul grafic nu acceptă una sau mai multe dintre aceste interfețe, atunci procesarea acestor operații este redirecționată către procesorul central. Videoclipul deja decodat poate fi transferat pe GPU pentru post-procesare video . Conducta rezultată este disponibilă în aplicațiile compatibile DirectShow .  

Pentru compensarea mișcării, DXVA definește o interfață driver (DDI), care, la rândul său, definește interfețe pentru transformarea cosinus discret (iDCT), codificare Huffman , amestecare alfa , cuantificare inversă, conversie a spațiului de culoare, schimbare a ratei cadrelor și alte operațiuni. [2] [3] Include, de asemenea, trei subspecificații: „Deinterlacing DDI”, „COPP DDI” și „ProcAmp DDI”. [4] Deinterlacing DDI definește funcțiile de apel invers pentru operațiunile de deinterlacing . Funcțiile DDI COPP (Certified Output Protection Protocol) permit conductei să protejeze datele media prin specificarea funcțiilor de criptare. ProcAmp DDI este folosit pentru a accelera post-procesarea video. Modulul driver ProcAmp se află între redarea hardware video și driverul de afișare și oferă funcții care vă permit să aplicați filtre de post-procesare pentru videoclipurile deja decodate.

Funcțiile DXVA DDI nu sunt disponibile direct pentru clientul DirectShow, dar sunt furnizate ca apeluri înapoi la redarea video. Astfel, rendererul joacă un rol foarte important în compoziția conductei.

DXVA 1.0 este utilizat pe Windows XP și Windows 2000 .

DXVA pe Windows Vista și mai nou

DXVA 2.0 a îmbunătățit implementarea conductei video și a adăugat alte DDI-uri, cum ar fi „Capture DDI” concepute pentru captura video . Două dintre cele trei DDI originale livrate cu DXVA 1.0 au fost îmbunătățite în a doua versiune, cu mai multe operațiuni disponibile pentru procesarea hardware. DXVA 2.0 nu include COPP DDI, ci folosește Calea Media Protejată pentru conținutul protejat. DXVA 1.0 este emulat folosind DXVA 2.0. [1] În DXVA 2.0, funcțiile DDI sunt disponibile direct pentru programul client și nu necesită un randament video intermediar. [5] Astfel, a devenit posibil să se creeze conducte pentru decodare video simplă (fără randare) sau post-procesare și redare (fără decodare). Toate aceste caracteristici necesită Windows Display Driver Model , care este livrat cu DirectX 10 , care limitează lista de sisteme de operare de la DXVA 2.0 la Windows Vista , Windows Server 2008 , Windows 7 și Windows Server 2008 R2 . [1] [5] DXVA 2.0 acceptă doar Enhanced Video Renderer ca redare video pe Vista și Windows 7 (pe Windows XP , redarea DXVA este posibilă cu VMR9 și Overlay Mixer [1] ). DXVA este integrat cu Media Foundation și permite ca conductele DXVA să fie recunoscute ca Media Foundation Transforms (MFT) . Chiar și conducta de decodare și conducta de post-procesare pot fi recunoscute ca MFT, rezultând o conductă completă de redare video folosind încărcătorul de topologie Media Foundation.

Există DXVA-HD care este o evoluție a DXVA 2.0 și este disponibil pe Windows 7 dacă WDDM 1.1 este suportat. [6]

Suport software

Vezi și

Note

  1. 1 2 3 4 5 DirectX Video Acceleration 2.0 . Consultat la 24 octombrie 2007. Arhivat din original pe 23 aprilie 2012.
  2. Introducere în DirectX VA . Consultat la 24 octombrie 2007. Arhivat din original pe 23 aprilie 2012.
  3. Suport pentru Microsoft DirectX Video Acceleration (DirectX VA) . Consultat la 24 octombrie 2007. Arhivat din original pe 23 aprilie 2012.
  4. Accelerație video DirectX . Consultat la 24 octombrie 2007. Arhivat din original pe 23 aprilie 2012.
  5. 12 Ce este nou în DirectShow . Consultat la 24 octombrie 2007. Arhivat din original pe 23 aprilie 2012.
  6. DXVA -HD  . MSDN (8 aprilie 2010). Consultat la 24 aprilie 2010. Arhivat din original pe 23 aprilie 2012.
  7. Adobe Flash HD-Video GPU Acceleration Guide | Accelerație GPU,Adobe Flash,HD-Video,ATI AVIVO-HD,NVIDIA PureVideo-HD,Adobe Flash HD-Video Ghid de accelerare GPU Ghid de utilizare . Consultat la 22 aprilie 2010. Arhivat din original pe 2 mai 2013.
  8. Decodare VLC GPU - VideoLAN Wiki . Preluat la 7 mai 2022. Arhivat din original la 13 mai 2021.

Link -uri