Video Acceleration API - Video Acceleration API
Původní autoři | Intel |
---|---|
První vydání | 2008 |
Stabilní uvolnění | 2.12.0 / 18. června 2021
|
Úložiště | |
Napsáno | C |
Operační systém | Linux , Android , BSD |
Typ | API |
Licence | Licence MIT |
webová stránka |
www |
Video Acceleration API ( VA-API ) je open source API, které umožňuje aplikacím, jako je VLC media player nebo GStreamer , využívat hardwarové akcelerace videa, které obvykle poskytuje grafická procesorová jednotka (GPU). Implementuje ho bezplatná a open-source knihovna libva v kombinaci s hardwarově specifickým ovladačem, obvykle dodávaným společně s ovladačem GPU.
VA-API Video dekódování / kódování rozhraní je platforma a okenní systém nezávislý, ale je primárně zaměřen na Direct Rendering Infrastructure (DRI) v X Window System na Unix -like operačních systémů (včetně Linuxu , FreeBSD , Solaris ) a Android , nicméně to může potenciálně lze také použít s přímým framebufferem a grafickými subsystémy pro video výstup. Zrychlené zpracování zahrnuje podporu pro dekódování videa , kódování videa , subpicture míchání a vykreslování.
Specifikace VA-API byla původně navržena společností Intel pro její řadu GMA (Graphics Media Accelerator) hardwaru GPU s konkrétním účelem eventuálního nahrazení standardu XvMC jako výchozího unixového multiplatformního ekvivalentu rozhraní Microsoft Windows DirectX Video Acceleration (DxVA) API , ale dnes API již není omezeno na hardware nebo GPU specifická pro Intel. Ostatní hardware a výrobci mohou toto otevřené standardní API volně používat pro hardwarově akcelerované zpracování videa s vlastním hardwarem bez placení licenčních poplatků.
Přehled
Hlavní motivací pro VA-API je umožnit hardwarově akcelerované dekódování videa v různých vstupních bodech ( VLD , IDCT , kompenzace pohybu , odblokování ) pro současné převládající standardy kódování ( 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 vzhledem k jeho původnímu designu pouze pro MPEG-2 MotionComp dávalo větší smysl navrhnout rozhraní od nuly, které může plně odhalit schopnosti dekódování videa v dnešních GPU .
Podporovaný hardware a ovladače
Od roku 2019 VA-API nativně podporuje:
- Open source ovladače Intel Quick Sync pro Linux
- Mesa open-source ovladače pro grafické karty AMD a Intel
- Ovladače AMDGPU-PRO pro grafické karty AMD v systému Linux
- libva-vdpau-driver pro karty podporované VDPAU
Podporované video kodeky
VA-API aktuálně podporuje tyto video kodeky v oficiální hlavní verzi, ale mějte na paměti, že přesně to, které video kodeky jsou podporovány, závisí na hardwaru a schopnostech ovladače.
- Zrychlení dekódování MPEG-2 Hlavní profil
- Pokročilý profil dekódování akcelerace VC-1 / WMV3
- MPEG-4 Part 2 (H.263) (aka MPEG-4 SP / MPEG-4 ASP, běžně známý jako Xvid ) akcelerace dekódování
- Hlavní profil akcelerace kódování H.264 AVC
- H.264 AVC akcelerace dekódování Vysoký profil
- Hardwarové dekódování proměnné délky (VLD) H.264 / AVC - CABAC
- Hardwarové dekódování proměnné délky (VLD) H.264 / AVC - CAVLC
- Inverzní transformace hardwaru H.264 / AVC (IT)
- Hardwarová kompenzace pohybu H.264 / AVC (HWMC)
- H.264 / AVC Hardware In-Loop Deblocking (ILDB)
- Zrychlení kódování H.265/HEVC
- Zrychlení dekódování H.265/HEVC
- Zrychlení 8bitového kódování VP9
- Zrychlení 8bitového a 10bitového dekódování VP9
Procesy, které lze urychlit pomocí VA-API
Procesy dekódování videa a následného zpracování, které lze uvolnit a zrychlit, pokud je podporují ovladače zařízení i hardware GPU:
- Kompenzace pohybu (mocomp)
- Inverzní diskrétní kosinová transformace (iDCT)
- Odblokovací filtr ve smyčce
- Intra-frame prediction
- variabilní délky dekódování (VLD), známější spíše 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 subsystémy než DRI (Direct Rendering Infrastructure) v systému X Window System , jako je například přímé s framebufferem , a může pracovat s DRM jiných výrobců ( Direct Rendering Manager) . Stručně řečeno, jedná se o systém se pak různé druhy datové vyrovnávací paměti z aplikace do GPU pro dekódování nebo kódování na stlačený bitového toku .
Software podporující VA-API
- Nepořádek (sada nástrojů)
- Mediální server Jellyfin
- Server médií Emby (od verze 3.0.6400)
- Přehrávač médií Helix ( Linux )
- ffmpeg , nástroj příkazového řádku z projektu FFmpeg , podporuje kódování VA-API prostřednictvím CLI s verzí začínající od 3.1 a také libavcodec (také součást projektu FFmpeg) obsahuje kód, který jiné aplikace používají k podpoře hardwarově akcelerovaného dekódování, včetně VA- API.
- Fluendo
- Gnash Flash / SWF player
- GStreamer přes gstreamer-vaapi
- Kodi (dříve XBMC Media Center) ( Linux )
- Kodibuntu (dříve XBMC Live) (operační systém Linux Live CD/USB)
- MPlayer (v1 s patche) a jeho vidlice mpv (nativní)
- MythTV (od vydání 0,25)
- Přehrávač médií VLC (od verze 1.1.0)
- Klient Bluecherry DVR (od verze 2.2.6)
- Xine (prostřednictvím knihovny „ xine-lib-vaapi “) od verze 1.2.3
- Otevřete software Broadcaster
- Firefox (na Waylandu od vydání 78 a na X11 od vydání 80)
Viz také
- Distributed Codec Engine (libdce) - API Texas Instruments pro engine video kodeků ve vestavěných systémech založených na OMAP
- OpenMAX -bezplatný multiplatformní API pro abstrakci médií od společnosti Khronos Group