Video Acceleration API - Video Acceleration API - Wikipedia
Původní autoři | Intel |
---|---|
První vydání | 13. září 2007 |
Stabilní uvolnění | 2.10.0 / 4. prosince 2020 |
Úložiště | github |
Napsáno | C |
Operační systém | Linux, Android, BSD |
Typ | API |
Licence | Licence MIT |
webová stránka | freedesktop |
Video Acceleration API (VA-API) je otevřený zdroj API který umožňuje aplikace jako Přehrávač médií VLC nebo GStreamer používat možnosti hardwarové akcelerace videa, které obvykle poskytuje grafická jednotka (GPU). Je prováděna zdarma a open-source knihovna libva, v kombinaci s ovladačem specifickým pro hardware, obvykle dodávaným společně s ovladačem GPU.
VA-API video dekódovací / kódovací rozhraní je nezávislé na platformě a okenním systému, ale je primárně zaměřeno na Infrastruktura přímého vykreslování (DRI) v Systém X Window na Unix -jako operační systémy (počítaje v to Linux, FreeBSD, Solaris ), a Android, ale lze jej potenciálně použít také s přímým framebuffer a grafické podsystémy pro video výstup. Zrychlené zpracování zahrnuje podporu pro dekódování videa, kódování videa, míchání obrazů a vykreslování.[1]
Specifikace VA-API byla původně navržena uživatelem Intel pro jeho GMA (Graphics Media Accelerator) řada GPU hardware se zvláštním účelem eventuální výměny XvMC standard jako výchozí unixový multiplatformní ekvivalent Microsoft Windows DirectX Video Acceleration (DxVA) API, ale API se dnes již neomezuje pouze na hardware nebo GPU specifické pro Intel.[2] Ostatní hardware a výrobci mohou volně používat toto otevřené standardní API pro hardwarově akcelerované zpracování videa s vlastním hardwarem, aniž by platili licenční poplatek.[3]
Přehled
Hlavní motivací pro VA-API je umožnit hardwarově akcelerované video dekódování na různých vstupních bodech (VLD, IDCT, kompenzace pohybu, odblokování[4]) pro převládající standardy kódování dnes (MPEG-2, MPEG-4 ASP /H.263, MPEG-4 AVC / H.264, H.265 / HEVC, a VC-1 / WMV3 ). Uvažovalo se o rozšíření XvMC, ale kvůli jeho původnímu designu pro MPEG-2 MotionComp pouze dávalo větší smysl navrhovat rozhraní od nuly, které v dnešní době může plně odhalit možnosti dekódování videa GPU.[5]
Podporovaný hardware a ovladače
Od roku 2019 je VA-API nativně podporováno:[6]
- Intel Quick Sync open-source ovladače pro Linux
- Mesa ovladače open-source pro grafické karty AMD a Intel
- Ovladače AMDGPU-PRO pro grafické karty AMD v systému Linux
- Proprietární ovladač Nvidia pro grafické karty Nvidia v systému Linux
- libva-vdpau-driver pro karty podporované VDPAU
Podporované videokodeky
VA-API v současné době podporuje tyto videokodeky v oficiální hlavní verzi, ale mějte na paměti, že přesně podporované videokodeky závisí na hardwaru a schopnostech ovladače.
- Hlavní profil akcelerace dekódování MPEG-2
- Pokročilý profil dekódování akcelerace VC-1 / WMV3
- MPEG-4 část 2 (H.263) (aka MPEG-4 SP / MPEG-4 ASP, více obyčejně známý jako Xvid ) zrychlení dekódování
- H.264 AVC hlavní profil akcelerace kódování
- Akcelerace dekódování H.264 AVC Vysoký profil
- Hardwarové dekódování proměnné délky H.264 / AVC (VLD) - CABAC
- Hardwarové dekódování proměnné délky H.264 / AVC (VLD) - CAVLC
- Hardwarová inverzní transformace H.264 / AVC (IT)
- Hardwarová kompenzace pohybu H.264 / AVC (HWMC)
- H.264 / AVC hardwarové odblokování ve smyčce (ILDB)
- H.265 / HEVC zrychlení kódování
- Zrychlení dekódování H.265 / HEVC
- VP9 8bitové zrychlení kódování[7]
- 8bitová a 10bitová akcelerace dekódování VP9[7]
Procesy, které lze urychlit pomocí VA-API
Procesy dekódování a následného zpracování videa, které lze vyložit a zrychlit, pokud je podporují ovladače zařízení i hardware GPU:
- Kompenzace pohybu (mocomp)
- Inverzní diskrétní kosinová transformace (iDCT)
- Ve smyčce odblokovací filtr
- Predikce uvnitř snímku
- Dekódování s proměnnou délkou (VLD), více obyčejně známý jako zrychlení na úrovni řezu
- Zpracování bitového toku (CAVLC /CABAC )
Softwarová architektura

Aktuální rozhraní je nezávislé na okenním systému, takže jej lze potenciálně použít s jinými grafickými podsystémy než DRI (Direct Rendering Infrastructure) v Systém X Window, například přímé s framebuffer a může pracovat s třetí stranou DRM (Direct Rendering Manager) knihovny. Stručně řečeno, je to schéma předávání různých typů datových vyrovnávacích pamětí z aplikace do GPU pro dekódování nebo kódování A komprimovaný bitový tok.
Software podporující VA-API
- Nepořádek (sada nástrojů)
- Jellyfin mediální server
- Emby server médií (od verze 3.0.6400) [8]
- Přehrávač médií Helix (Linux )[9][10]
- ffmpeg, nástroj příkazového řádku z FFmpeg projekt, podporuje kódování VA-API přes CLI s verzí od 3.1 a také libavcodec (také součást projektu FFmpeg) obsahuje kód, který používají jiné aplikace k podpoře hardwarově akcelerovaného dekódování, včetně VA-API.[11]
- Fluendo [12]
- Skřípat Flash / SWF hráč[13]
- GStreamer přes gstreamer-vaapi[14]
- Kodi (dříve XBMC Media Center) (Linux )[15]
- Kodibuntu (dříve XBMC Live) (operační systém Linux Live CD / USB)[15]
- MPlayer (v1 s opravami)[16] a jeho vidlice mpv (rodák)
- MythTV (od vydání 0.25)[17]
- Přehrávač médií VLC (od vydání 1.1.0)[18]
- Klient Bluecherry DVR (od vydání 2.2.6)[19]
- Xine (přes "xine-lib-vaapi"knihovna) od verze 1.2.3 [20]
- Otevřete software vysílače[21]
- Firefox (Na Waylandu od vydání 78 a na X11 od vydání 80) [22][23]
Viz také
- Distribuovaný kodekový engine (libdce) - API společnosti Texas Instruments pro motor video kodeků ve vestavěných systémech založených na OMAP
- OpenMAX - bezplatná multiplatformní mediální abstrakce API od skupiny Khronos Group
Reference
- ^ „VA-API Video Acceleration On Intel Medfield - Phoronix“. Phoronix.com. Citováno 23. února 2019.
- ^ „Video4Linux2: Cesta ke standardizovanému rozhraní API pro video kodek“ (PDF). Events.linuxfoundation.org. Citováno 23. února 2019.
- ^ Nathan Willis (01.07.2009). „VA API pomalu, ale jistě, děláme pokrok“. Lwn.net.
- ^ „Mplayer, FFmpeg Gain VA-API Support - Phoronix“. Phoronix.com. Citováno 23. února 2019.
- ^ "vaapi". Freedesktop.org. Citováno 23. února 2019.
- ^ https://wiki.archlinux.org/index.php/Hardware_video_acceleration
- ^ A b „Archivovaná kopie“. Archivovány od originál dne 2017-02-01. Citováno 2017-01-20.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ „Vydáno Emby Server 3.0.6400“. Emby.media. 29. srpna 2016. Citováno 23. února 2019.
- ^ „Položka seznamu adresátů, která popisuje použití VA-API“. Lists.moblin.org. Citováno 23. února 2019.
- ^ „Archivovaná kopie“. Archivovány od originál dne 2012-03-24. Citováno 2011-05-12.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ „Archivovaná kopie“. Archivovány od originál dne 2016-09-16. Citováno 2016-08-31.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ „Nové kodeky Fluendo podporují VDPAU, VA-API - Phoronix“. Phoronix.com. Citováno 23. února 2019.
- ^ „Grafická akcelerace videa H.264 VA-API GPU pro Flash - Phoronix“. Phoronix.com. Citováno 23. února 2019.
- ^ „Hardwarově akcelerované video dekódování, kódování a zpracování na grafice Intel prostřednictvím VA-API“. Cgit.freedesktop.org. Citováno 23. února 2019.
- ^ A b „XBMC začíná pracovat s podporou Intel VA-API - Phoronix“. Phoronix.com. Citováno 23. února 2019.
- ^ „Archivovaná kopie“. Archivovány od originál dne 03.08.2013. Citováno 2014-02-10.CS1 maint: archivovaná kopie jako titul (odkaz)
- ^ "Poznámky k vydání - 0.25 - MythTV Official Wiki". Mythtv.org. Citováno 23. února 2019.
- ^ „Vydání VLC 1.1.0 - VideoLAN“. Videolan.org. Citováno 23. února 2019.
- ^ „[Klient] 2.2.6 Vydáno - Zahrnuto výrazné snížení využití procesoru“. Bluecherrydvr.com. 2. března 2017. Citováno 23. února 2019.
- ^ „projekt xine - zpravodajský kanál“. Xine-project.org. Citováno 23. února 2019.
- ^ „OBS Studio nyní podporuje VA-API pro kódování videa - Phoronix“. www.phoronix.com. Citováno 2020-08-06.
- ^ „Firefox ve Fedoře konečně dostane na Waylandu VA-API“. mastransky.wordpress.com. Citováno 2020-08-19.
- ^ „Firefox 80 je k dispozici s VA-API na X11, podpora kompilace WebGL Parallel Shader“. www.phoronix.com. Citováno 2020-08-25.