Video Acceleration API

From Wikipedia, the free encyclopedia
Jump to: navigation, search
libVA
Stable release 1.0.15
Written in C
Operating system Unix-like
Type Library
Website www.freedesktop.org/wiki/Software/vaapi

Video Acceleration API (VA API) is an open source software library ("libVA") and API specification. It enables and provides access to graphics hardware (GPU) acceleration for video processing. VA API is targeted at the X Window System on Unix-based operating systems (including Linux, FreeBSD, and Solaris). Accelerated processing includes video decoding, video encoding, subpicture blending and rendering. The specification was originally designed by Intel for its GMA (Graphics Media Accelerator) series of GPU hardware. However, the API is not limited to GPUs or Intel specific hardware, as other hardware and manufacturers can also freely use this API for hardware accelerated video decoding.[1]

VA API was designed with the purpose of some day fully replacing XvMC, which used to be the Unix equivalent of the Microsoft Windows DirectX Video Acceleration (DxVA) API, and more.

Contents

[edit] Overview

The main motivation for VA API is to enable hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking[2]) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, 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.[3]

[edit] Supported Hardware and Drivers

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

[edit] Processes that can be accelerated with VA API

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

[edit] Architecture

The current interface is focused on video decode only and is window system independent, so that potentially it can be used with graphics sub-systems other than the X Window System. In a nutshell it is basically a scheme to pass various types of data buffers from the application to the GPU for decoding a compressed bit-stream. Feedback on this API is greatly welcomed, as this is intended to be a community collaborative effort.

Vaapi illustration.svg

[edit] Sources

"This API is intended to provide an interface between a video decode application (client) and a hardware decode accelerator (server), to off-load video decode operations from the host to the hardware accelerator at various entry-points." 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

[edit] Software supporting VA API

Some software may gain VA API support in the future : Lightspark (Flash / SWF player),[17] GStreamer (via "gstreamer-vaapi" VA-API plugins for GStreamer)[18], MythTV[19] and Xine (via "xine-lib-vaapi" library).[20]

[edit] See also

[edit] References

  1. ^ Nathan Willis (2009-07-01). "VA API slowly, but surely, making progress". lwn.net. http://lwn.net/Articles/339349/. 
  2. ^ MPlayer, FFmpeg Gain VA-API Support
  3. ^ freedesktop.org - Software/vaapi, About
  4. ^ http://intellinuxgraphics.org/documentation.html
  5. ^ Intel's Poulsbo Driver A Bloody Mess?
  6. ^ http://www.phoronix.com/scan.php?page=news_item&px=MTA0NDI VA-API Video Acceleration On Intel Medfield
  7. ^ http://www.phoronix.com/scan.php?page=news_item&px=MTA0NDI VA-API Video Acceleration On Intel Medfield
  8. ^ S3 Graphics Releases Linux Driver With OpenGL 3.0, VA API
  9. ^ Michael Larabel (2009-02-03). "A NVIDIA VDPAU Back-End For Intel's VA-API". Phoronix. http://www.phoronix.com/scan.php?page=article&item=xorg_vdpau_vaapi. Retrieved 2009-03-13. 
  10. ^ Mailing list entry that describes uses of VA-API
  11. ^ https://community.helixcommunity.org/Licenses/realplayer_for_mid_faq.html RealPlayer for MID & Intel/Linux FAQ
  12. ^ .264 VA-API GPU Video Acceleration For Flash
  13. ^ Gnash uses libavcodec's VA-API code for hardware accelerated video decoding
  14. ^ Fluendo's New Codecs Support VDPAU, VA-API
  15. ^ a b XBMC Gets Working Intel VA-API Support
  16. ^ VLC 1.1.0 release notes
  17. ^ (English) Bug report on Launchpad
  18. ^ http://www.splitted-desktop.com/~gbeauchesne/gstreamer-vaapi/ gstreamer-vaapi - VA-API plugins for GStreamer
  19. ^ http://www.mythtv.org/wiki/VAAPI MythTV VAAPI
  20. ^ (English) VAAPI support for Xine on xine-devel mailing list
  21. ^ http://www.tuaw.com/2011/01/20/xbmc-for-ios-and-atv2-now-available/ XBMC for iOS and Apple TV now available
  22. ^ http://developer.amd.com/gpu/AMDAPPSDK/assets/OpenVideo_Decode_API.PDF OpenVideo Decode (OVD) API

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages