Videobeschleunigungs-API - Video Acceleration API
Originalautor(en) | Intel |
---|---|
Erstveröffentlichung | 2008 |
Stabile Version | 2.13.0 / 16. September 2021
|
Repository | |
Geschrieben in | C |
Betriebssystem | Linux , Android , BSD |
Typ | API |
Lizenz | MIT-Lizenz |
Webseite |
www |
Video Acceleration API ( VA-API ) ist eine Open-Source- API , die es Anwendungen wie dem VLC Media Player oder GStreamer ermöglicht, Hardware-Videobeschleunigungsfunktionen zu verwenden, die normalerweise von der Grafikverarbeitungseinheit (GPU) bereitgestellt werden . Es wird durch die freie und Open-Source- Bibliothek libva implementiert , kombiniert mit einem hardwarespezifischen Treiber, der normalerweise zusammen mit dem GPU-Treiber bereitgestellt wird.
Video VA-API dekodieren / kodieren Schnittstelle ist Plattform und Fenstersystem unabhängig , aber in erster Linie an gezielte Direct Rendering Infrastructure (DRI) in X - Window - System auf Unix - ähnlichen Betriebssystemen (einschließlich Linux , FreeBSD , Solaris ) und Android , aber es kann möglicherweise auch mit direkten Framebuffer- und Grafik-Subsystemen für die Videoausgabe verwendet werden. Die beschleunigte Verarbeitung umfasst Unterstützung für Videodecodierung , Videocodierung , Unterbildüberblendung und Rendering.
Die VA-API-Spezifikation wurde ursprünglich von Intel für seine GPU- Hardware- Serie GMA (Graphics Media Accelerator) mit dem spezifischen Zweck entwickelt, den XvMC- Standard schließlich als das standardmäßige Unix-Multi-Plattform-Äquivalent der Microsoft Windows DirectX Video Acceleration (DxVA) API zu ersetzen , aber heute ist die API nicht mehr auf Intel-spezifische Hardware oder GPUs beschränkt. Andere Hardware und Hersteller können diese offene Standard-API für die hardwarebeschleunigte Videoverarbeitung mit ihrer eigenen Hardware frei verwenden, ohne eine Lizenzgebühr zu zahlen.
Überblick
Die Hauptmotivation für VA-API besteht darin, die hardwarebeschleunigte Videodecodierung an verschiedenen Einstiegspunkten ( VLD , IDCT , Bewegungskompensation , Deblocking ) für die heute vorherrschenden Codierungsstandards ( MPEG-2 , MPEG-4 ASP / H.263 , MPEG-4 AVC/H.264 , H.265/HEVC und VC-1/WMV3 ). Eine Erweiterung von XvMC wurde in Erwägung gezogen, aber aufgrund seines ursprünglichen Designs nur für MPEG-2 MotionComp war es sinnvoller, eine Schnittstelle von Grund auf neu zu entwickeln, die die Videodecodierungsfunktionen heutiger GPUs vollständig zur Verfügung stellen kann .
Unterstützte Hardware und Treiber
Ab 2019 wird VA-API nativ unterstützt von:
- Intel Quick Sync Open-Source-Treiber für Linux
- Mesa Open-Source-Treiber für AMD- und Intel-Grafikkarten
- AMDGPU-PRO-Treiber für AMD-Grafikkarten unter Linux
- libva-vdpau-Treiber für von VDPAU unterstützte Karten
Unterstützte Videocodecs
Die VA-API unterstützt derzeit diese Videocodecs in der offiziellen Mainline-Version, aber beachten Sie, dass genau welche Videocodecs unterstützt werden, von der Hardware und den Fähigkeiten des Treibers abhängt.
- MPEG-2-Decodierungsbeschleunigung Hauptprofil
- VC-1 / WMV3-Dekodierbeschleunigung Advanced Profile
- MPEG-4 Part 2 (H.263) (auch bekannt als MPEG-4 SP / MPEG-4 ASP, besser bekannt als Xvid ) Dekodierungsbeschleunigung
- H.264 AVC- Kodierungsbeschleunigung Hauptprofil
- H.264 AVC-Dekodierungsbeschleunigung High Profile
- H.264 / AVC-Hardware-Decodierung mit variabler Länge (VLD) - CABAC
- H.264 / AVC-Hardware-Decodierung mit variabler Länge (VLD) - CAVLC
- H.264 / AVC-Hardware-Inverse Transformation (IT)
- H.264 / AVC-Hardware-Bewegungskompensation (HWMC)
- H.264 / AVC-Hardware-In-Loop-Deblocking (ILDB)
- H.265/HEVC- Kodierungsbeschleunigung
- H.265/HEVC-Dekodierungsbeschleunigung
- VP9 8-Bit-Kodierungsbeschleunigung
- VP9 8-Bit- und 10-Bit-Dekodierungsbeschleunigung
Prozesse, die mit VA-API . beschleunigt werden können
Videodekodierungs- und Nachbearbeitungsprozesse, die ausgelagert und beschleunigt werden können, wenn sowohl die Gerätetreiber als auch die GPU-Hardware sie unterstützen:
- Bewegungskompensation (mocomp)
- Inverse diskrete Kosinustransformation (iDCT)
- In-Loop- Deblocking-Filter
- Intra-Frame-Vorhersage
- Decodierung mit variabler Länge (VLD), besser bekannt als Slice-Level-Beschleunigung
- Bitstream-Verarbeitung ( CAVLC / CABAC )
Softwarearchitektur
Die aktuelle Schnittstelle Fenstersystem unabhängig, so dass es möglicherweise mit Grafiken Subsystemen andere als die verwendet werden kann , DRI (Direct Rendering Infrastructure) in X - Window - System , wie zum Beispiel direkt mit Framebuffer , und es kann mit Drittanbietern arbeitet DRM ( Direct Rendering Manager) -Bibliotheken. Kurz gesagt, es ist ein Schema, um verschiedene Arten von Datenpuffern von der Anwendung an die GPU zu übergeben , um einen komprimierten Bitstrom zu dekodieren oder zu kodieren .
Software, die VA-API unterstützt
- Unordnung (Toolkit)
- Jellyfin Medienserver
- Emby Medienserver (ab Release 3.0.6400)
- Helix-Mediaplayer ( Linux )
- ffmpeg , ein Befehlszeilentool aus dem FFmpeg- Projekt, unterstützt die VA-API-Codierung über CLI ab Version 3.1 und auch libavcodec (ebenfalls Teil des FFmpeg-Projekts) enthält Code, den andere Anwendungen verwenden, um die hardwarebeschleunigte Decodierung zu unterstützen, einschließlich VA- API.
- Fluendo
- Gnash Flash / SWF- Player
- GStreamer über gstreamer-vaapi
- Kodi (ehemals XBMC Media Center) ( Linux )
- Kodibuntu (ehemals XBMC Live) (Linux Live CD/USB-Betriebssystem)
- MPlayer (v1 mit Patches) und seine Gabel mpv (nativ)
- MythTV (ab Release 0.25)
- VLC Mediaplayer (ab Release 1.1.0)
- Bluecherry DVR-Client (ab Version 2.2.6)
- Xine (über " xine-lib-vaapi "-Bibliothek) seit Version 1.2.3
- Offene Broadcaster-Software
- Firefox (auf Wayland seit Version 78 und auf X11 seit Version 80)
Siehe auch
- Distributed Codec Engine (libdce) – Texas Instruments API für die Video-Codec-Engine in OMAP-basierten eingebetteten Systemen
- OpenMAX – eine lizenzfreie plattformübergreifende Medienabstraktions-API der Khronos Group
Verweise
Externe Links
- Offizielle Website
- Intel Media und Audio für Linux
- mobile-hw-decode
- „VA API macht langsam – aber sicher – Fortschritte“ – ein Überblick aus dem Jahr 2009
- "MPlayer, FFmpeg Gain VA-API Support" – ab 2008