Videobeschleunigungs-API - Video Acceleration API

libva
Originalautor(en) Intel
Erstveröffentlichung 2008
Stabile Version
2.13.0 / 16. September 2021 ; Vor 26 Tagen ( 16. September 2021 )
Repository
Geschrieben in C
Betriebssystem Linux , Android , BSD
Typ API
Lizenz MIT-Lizenz
Webseite www .freedesktop .org / wiki / Software / vaapi / Bearbeiten Sie dies auf Wikidata

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

Ein Beispiel für die vainfo-Ausgabe mit unterstützten Videocodecs für die VA-API-Beschleunigung

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:

Softwarearchitektur

Architektur der Videobeschleunigungs-API

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

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