Video Acceleration API

Source: Wikipedia, the free encyclopedia.
libva
Original author(s)Intel
Initial release2008
Stable release
2.21.0[1] / 26 March 2024; 34 days ago (26 March 2024)
Repository
Written inC
Operating systemLinux, Android, BSD, Windows 10, Windows 11
TypeAPI
LicenseMIT License
Websitewww.freedesktop.org/wiki/Software/vaapi/ Edit this on Wikidata

Video Acceleration API (VA-API) is an

free and open-source library
libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

VA-API video decode/encode interface is platform and window system independent but is primarily targeted at

video encoding, subpicture blending, and rendering.[2]

The VA-API specification was originally designed by

XvMC standard as the default Unix multi-platform equivalent of Microsoft Windows DirectX Video Acceleration (DxVA) API, but today the API is no longer limited to Intel-specific hardware or GPUs.[3] Other hardware and manufacturers can freely use this open standard API for hardware accelerated video processing with their own hardware without paying a royalty fee.[4]

Overview

An example of vainfo output, showing supported video codecs for VA-API acceleration

The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (

MotionComp only, it made more sense to design an interface from scratch that can fully expose the video decode capabilities in today's GPUs.[6]

Supported hardware and drivers

As of 2022, VA-API is natively supported by:[7]

  • Intel Quick Sync
    open-source drivers for Linux
  • Mesa open-source drivers for AMD and Nvidia graphics cards
  • AMDGPU-PRO drivers for AMD graphics cards on Linux
  • libva-vdpau-driver for cards supported by VDPAU
  • Direct3D 12 implementations with the VAOn12 driver[8]

Supported video codecs

VA-API currently supports these video codecs in the official mainline version, but note that exactly which video codecs are supported depends on the hardware and the driver's capabilities.

  • MPEG-2 decode acceleration Main Profile
  • VC-1 / WMV3 decode acceleration Advanced Profile
  • MPEG-4 Part 2 (H.263) (a.k.a. MPEG-4 SP / MPEG-4 ASP, more commonly known as Xvid) decode acceleration
  • H.264 AVC
    encode acceleration Main Profile
  • H.264 AVC decode acceleration High Profile
    • H.264 / AVC Hardware Variable Length Decoding (VLD) - CABAC
    • H.264 / AVC Hardware Variable Length Decoding (VLD) - CAVLC
    • H.264 / AVC Hardware Inverse Transform (IT)
    • H.264 / AVC Hardware Motion Compensation (HWMC)
    • H.264 / AVC Hardware In-Loop Deblocking (ILDB)
  • H.265/HEVC encode acceleration
  • H.265/HEVC decode acceleration
  • VP9 8-bit encode acceleration[9]
  • VP9 8-bit and 10-bit decode acceleration[9]
  • AV1 8-bit and 10-bit encode acceleration
  • AV1 8-bit and 10-bit decode acceleration[7]

Processes that can be accelerated with VA-API

Video decoding and post-processing processes that can be offloaded and accelerated if both the device drivers and GPU hardware supports them:

Software architecture

Video Acceleration API architecture

The current interface is window system independent, so that it can potentially be used with graphics sub-systems other than the

compressed bit-stream
.

Software supporting VA-API

A log of Firefox showing VA-API being used for video decoding acceleration

See also

  • Distributed Codec Engine (libdce) — Texas Instruments API for the video codec engine in OMAP based embedded systems
  • OpenMAX — a royalty-free cross-platform media abstraction API from the Khronos Group

References

  1. ^ "libva 2.21.0". 26 March 2024. Retrieved 26 March 2024.
  2. ^ "VA-API Video Acceleration On Intel Medfield - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  3. ^ "Video4Linux2: Path to a Standardized Video Codec API" (PDF). Events.linuxfoundation.org. Retrieved 23 February 2019.
  4. ^ Nathan Willis (2009-07-01). "VA API slowly, but surely, making progress". Lwn.net.
  5. ^ "Mplayer, FFmpeg Gain VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  6. ^ "vaapi". Freedesktop.org. Retrieved 23 February 2019.
  7. ^ a b "Hardware video acceleration". wiki.ArchLinux.org.
  8. ^ Vilerino, Sil (2023-02-15). "Video acceleration API (VA-API) now available on Windows!". DirectX Developer Blog. Retrieved 2023-03-08.
  9. ^ a b "Hardware/vaapi". wiki.libav.org. Archived from the original on 2017-02-01. Retrieved 2017-01-20.
  10. ^ "Emby Server 3.0.6400 Released". Emby.media. 29 August 2016. Retrieved 23 February 2019.
  11. ^ "Mailing list entry that describes uses of VA-API". Lists.moblin.org. Retrieved 23 February 2019.
  12. ^ "RealPlayer for MID & Intel/Linux FAQ". HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
  13. ^ "Archived copy". Archived from the original on 2016-09-16. Retrieved 2016-08-31.{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^ "Fluendo's New Codecs Support VDPAU, VA-API - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  15. ^ "H.264 VA-API GPU Video Acceleration For Flash - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  16. ^ "Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API". Cgit.freedesktop.org. Retrieved 23 February 2019.
  17. ^ a b "XBMC Gets Working Intel VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  18. ^ "Mplayer in vaapi - Gitorious". Archived from the original on 2013-08-03. Retrieved 2014-02-10.
  19. ^ "Release Notes - 0.25 - MythTV Official Wiki". Mythtv.org. Retrieved 23 February 2019.
  20. ^ "VLC 1.1.0 release - VideoLAN". Videolan.org. Retrieved 23 February 2019.
  21. ^ "[Client] 2.2.6 Released – Significant CPU usage reductions included". Bluecherrydvr.com. 2 March 2017. Retrieved 23 February 2019.
  22. ^ "the xine project - News Feed". Xine-project.org. Retrieved 23 February 2019.
  23. ^ "OBS Studio Now Supports VA-API For Video Encoding - Phoronix". www.phoronix.com. Retrieved 2020-08-06.
  24. ^ "Firefox on Fedora finally gets VA-API on Wayland". mastransky.wordpress.com. 3 June 2020. Retrieved 2020-08-19.
  25. ^ "Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support". www.phoronix.com. Retrieved 2020-08-25.

External links