Video Acceleration API

libVA
Original author(s) Intel
Initial release September 13, 2007 (2007-09-13)
Stable release
1.8.2 / May 22, 2017 (2017-05-22)
Preview release
1.8.2 pre1 / May 15, 2017 (2017-05-15)
Repository git://anongit.freedesktop.org/vaapi/libva, https://github.com/01org/libva
Written in C
Operating system Linux, Android, and BSD-based systems
Type API
Library
License MIT License
Website www.freedesktop.org/wiki/Software/vaapi

Video Acceleration API (VA API) is a royalty-free API as well as its implementation as free and open-source library (libVA) distributed under the MIT License.

The VA API interface is to be implemented by device drivers to offer end-user software, such as VLC media player or GStreamer, access to available video acceleration hardware, such as PureVideo (through the libva-vdpau driver, which implements VA API in terms of VDPAU) or Unified Video Decoder.

The API enables and provides access to hardware-accelerated video processing, using hardware such as graphics processing units (GPU) to accelerate video encoding and decoding by offloading processing from the central processing unit (CPU).

VA API video decode/encode interface is platform and window system independent but is today 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.[1]

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.[2] 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.[3]

Overview

The main motivation for VA API is to enable hardware-accelerated video decode at various entry-points (VLD, IDCT, motion compensation, deblocking[4]) 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.[5]

Supported hardware and drivers

As of January 17, 2012 VA API is natively supported by :

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.

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 (VA API) interface 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.

Sources


"The main motivation for VA-API (Video Acceleration API) is to enable hardware accelerated video decode/encode at various entry-points (VLD, IDCT, Motion Compensation etc.) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, H.265/HEVC and VC-1/VMW3)." http://www.freedesktop.org/wiki/Software/vaapi

"A new video acceleration API is being developed, in an effort led by Intel. This new API supports more complete offload (VLD) as well as iDCT+MC, and can support acceleration of MPEG4, H.264, VC-1, as well as MPEG-2." http://www.mythtv.org/wiki/XvMC

The "VA API" and "libVA" can also be read about here: "The end user impact is improved performance of H.264, VC-1, MPEG-2 and MPEG-4 video playback with media players that use the new API compared to playback using a pure software implementation." https://wiki.ubuntu.com/mobile-hw-decode

Software supporting VA API

Some software may gain VA API support in the future : Lightspark (Flash / SWF player),[26]

See also

References

  1. 1 2 3 https://www.phoronix.com/scan.php?page=news_item&px=MTA0NDI VA-API Video Acceleration On Intel Medfield
  2. https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf Video4Linux2 - Path to a Standardized Video Codec API
  3. Nathan Willis (2009-07-01). "VA API slowly, but surely, making progress". lwn.net.
  4. MPlayer, FFmpeg Gain VA-API Support
  5. freedesktop.org - Software/vaapi, About
  6. http://gitorious.org/crystalhd-video CrystalHD backend for VA-API (libva)
  7. "Archived copy". Archived from the original on June 20, 2012. Retrieved November 12, 2012. Intel hardware-accelerated media decoding and encoding on Linux
  8. http://intellinuxgraphics.org/documentation.html
  9. Intel's Poulsbo Driver A Bloody Mess?
  10. S3 Graphics Releases Linux Driver With OpenGL 3.0, VA API
  11. Michael Larabel (2009-02-03). "A NVIDIA VDPAU Back-End For Intel's VA-API". Phoronix. Retrieved 2009-03-13.
  12. 1 2 https://wiki.libav.org/Hardware/vaapi
  13. https://emby.media/emby-server-306400-released.html
  14. Mailing list entry that describes uses of VA-API
  15. https://community.helixcommunity.org/Licenses/realplayer_for_mid_faq.html RealPlayer for MID & Intel/Linux FAQ
  16. Fluendo's New Codecs Support VDPAU, VA-API
  17. .264 VA-API GPU Video Acceleration For Flash
  18. "gstreamer-vaapi git".
  19. 1 2 XBMC Gets Working Intel VA-API Support
  20. mplayer branch soon to be merged mainline
  21. MythTV 0.25 release notes
  22. VLC 1.1.0 release notes
  23. release notes
  24. http://xine-project.org/news
  25. (in English) Bug report on Launchpad
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.