fbpx
Wikipedia

Video Acceleration API

Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

libva
Original author(s)Intel
Initial release2008
Stable release
2.21.0[1] / 26 March 2024; 47 days ago (26 March 2024)
Repository
  • github.com/intel/libva
Written inC
Operating systemLinux, Android, BSD, Windows 10, Windows 11
TypeAPI
LicenseMIT License
Websitewww.freedesktop.org/wiki/Software/vaapi/ 

VA-API video decode/encode interface is platform and window system independent but is primarily targeted at Direct Rendering Infrastructure (DRI) in X Window System on Unix-like operating systems (including Linux, FreeBSD, Solaris), and Android, however it can potentially also be used with direct framebuffer and graphics sub-systems for video output. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.[2]

The VA-API specification was originally designed by Intel for its GMA (Graphics Media Accelerator) series of GPU hardware with the specific purpose of eventually replacing the 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 edit

 
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 (VLD, IDCT, motion compensation, deblocking[5]) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, H.265/HEVC, and VC-1/WMV3). Extending XvMC was considered, but due to its original design for MPEG-2 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 edit

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 edit

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 edit

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

Software architecture edit

 
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 DRI (Direct Rendering Infrastructure) in X Window System, such as direct with framebuffer, and it can work with third-party DRM (Direct Rendering Manager) libraries. In a nutshell, it is a scheme to pass various types of data buffers from the application to the GPU for decoding or encoding a compressed bit-stream.

Software supporting VA-API edit

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

See also edit

  • 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 edit

  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. 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. ^ . HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
  13. ^ . 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. ^ . 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 edit

  • Official website
  • Intel Media and Audio for Linux
  • mobile-hw-decode
  • "VA API slowly -- but surely -- making progress" – an overview from 2009
  • "MPlayer, FFmpeg Gain VA-API Support" – from 2008

video, acceleration, this, article, technical, most, readers, understand, please, help, improve, make, understandable, experts, without, removing, technical, details, november, 2021, learn, when, remove, this, message, open, source, application, programming, i. This article may be too technical for most readers to understand Please help improve it to make it understandable to non experts without removing the technical details November 2021 Learn how and when to remove this message Video Acceleration API VA API is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities usually provided by the graphics processing unit GPU It is implemented by the free and open source library libva combined with a hardware specific driver usually provided together with the GPU driver libvaOriginal author s IntelInitial release2008Stable release2 21 0 1 26 March 2024 47 days ago 26 March 2024 Repositorygithub wbr com wbr intel wbr libvaWritten inCOperating systemLinux Android BSD Windows 10 Windows 11TypeAPILicenseMIT LicenseWebsitewww wbr freedesktop wbr org wbr wiki wbr Software wbr vaapi wbr VA API video decode encode interface is platform and window system independent but is primarily targeted at Direct Rendering Infrastructure DRI in X Window System on Unix like operating systems including Linux FreeBSD Solaris and Android however it can potentially also be used with direct framebuffer and graphics sub systems for video output Accelerated processing includes support for video decoding video encoding subpicture blending and rendering 2 The VA API specification was originally designed by Intel for its GMA Graphics Media Accelerator series of GPU hardware with the specific purpose of eventually replacing the 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 Contents 1 Overview 1 1 Supported hardware and drivers 1 2 Supported video codecs 2 Processes that can be accelerated with VA API 3 Software architecture 4 Software supporting VA API 5 See also 6 References 7 External linksOverview edit nbsp 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 VLD IDCT motion compensation deblocking 5 for the prevailing coding standards today MPEG 2 MPEG 4 ASP H 263 MPEG 4 AVC H 264 H 265 HEVC and VC 1 WMV3 Extending XvMC was considered but due to its original design for MPEG 2 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 edit 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 edit 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 editVideo decoding and post processing processes that can be offloaded and accelerated if both the device drivers and GPU hardware supports them Motion compensation Inverse discrete cosine transform In loop deblocking filter Intra frame prediction variable length decoding more commonly known as slice level acceleration Bitstream processing Context adaptive variable length coding Context adaptive binary arithmetic coding Software architecture edit nbsp 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 DRI Direct Rendering Infrastructure in X Window System such as direct with framebuffer and it can work with third party DRM Direct Rendering Manager libraries In a nutshell it is a scheme to pass various types of data buffers from the application to the GPU for decoding or encoding a compressed bit stream Software supporting VA API edit nbsp A log of Firefox showing VA API being used for video decoding acceleration Clutter toolkit Jellyfin media server datarhei Restreamer real time live video streaming Emby media server starting from release 3 0 6400 10 Helix media player Linux 11 12 ffmpeg a command line tool from the FFmpeg project supports VA API encoding through CLI with version starting from 3 1 and also libavcodec also part of the FFmpeg project does contain code that other applications use to support hardware accelerated decoding including VA API 13 Fluendo 14 Gnash Flash SWF player 15 GStreamer through gstreamer vaapi 16 Kodi formerly XBMC Media Center Linux 17 Kodibuntu formerly XBMC Live Linux Live CD USB operating system 17 MPlayer v1 with patches 18 and its fork mpv native MythTV starting from release 0 25 19 OpenShot VLC media player starting from release 1 1 0 20 Bluecherry DVR client starting from release 2 2 6 21 Xine via xine lib vaapi library since Version 1 2 3 22 OBS Studio 23 Firefox On Wayland since release 78 and on X11 since release 80 24 25 See also edit nbsp Free and open source software portal 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 GroupReferences edit libva 2 21 0 26 March 2024 Retrieved 26 March 2024 VA API Video Acceleration On Intel Medfield Phoronix Phoronix com Retrieved 23 February 2019 Video4Linux2 Path to a Standardized Video Codec API PDF Events linuxfoundation org Retrieved 23 February 2019 Nathan Willis 2009 07 01 VA API slowly but surely making progress Lwn net Mplayer FFmpeg Gain VA API Support Phoronix Phoronix com Retrieved 23 February 2019 vaapi Freedesktop org Retrieved 23 February 2019 a b Hardware video acceleration wiki ArchLinux org Vilerino Sil 2023 02 15 Video acceleration API VA API now available on Windows DirectX Developer Blog Retrieved 2023 03 08 a b Hardware vaapi wiki libav org Archived from the original on 2017 02 01 Retrieved 2017 01 20 Emby Server 3 0 6400 Released Emby media 29 August 2016 Retrieved 23 February 2019 Mailing list entry that describes uses of VA API Lists moblin org Retrieved 23 February 2019 RealPlayer for MID amp Intel Linux FAQ HelixCommunity org Archived from the original on 2012 03 24 Retrieved 2011 05 12 Archived copy Archived from the original on 2016 09 16 Retrieved 2016 08 31 a href Template Cite web html title Template Cite web cite web a CS1 maint archived copy as title link Fluendo s New Codecs Support VDPAU VA API Phoronix Phoronix com Retrieved 23 February 2019 H 264 VA API GPU Video Acceleration For Flash Phoronix Phoronix com Retrieved 23 February 2019 Hardware accelerated video decoding encoding and processing on Intel graphics through VA API Cgit freedesktop org Retrieved 23 February 2019 a b XBMC Gets Working Intel VA API Support Phoronix Phoronix com Retrieved 23 February 2019 Mplayer in vaapi Gitorious Archived from the original on 2013 08 03 Retrieved 2014 02 10 Release Notes 0 25 MythTV Official Wiki Mythtv org Retrieved 23 February 2019 VLC 1 1 0 release VideoLAN Videolan org Retrieved 23 February 2019 Client 2 2 6 Released Significant CPU usage reductions included Bluecherrydvr com 2 March 2017 Retrieved 23 February 2019 the xine project News Feed Xine project org Retrieved 23 February 2019 OBS Studio Now Supports VA API For Video Encoding Phoronix www phoronix com Retrieved 2020 08 06 Firefox on Fedora finally gets VA API on Wayland mastransky wordpress com 3 June 2020 Retrieved 2020 08 19 Firefox 80 Available With VA API On X11 WebGL Parallel Shader Compile Support www phoronix com Retrieved 2020 08 25 External links editOfficial website Intel Media and Audio for Linux mobile hw decode VA API slowly but surely making progress an overview from 2009 MPlayer FFmpeg Gain VA API Support from 2008 Retrieved from https en wikipedia org w index php title Video Acceleration API amp oldid 1211539891, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.