Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Video Acceleration API

From Wikipedia, the free encyclopedia
(Redirected fromVaAPI)
This articlemay be too technical for most readers to understand. Pleasehelp improve it tomake it understandable to non-experts, without removing the technical details.(November 2021) (Learn how and when to remove this message)
Open source API for video acceleration
libva
Original author(s)Intel
Initial release2008
Stable release
2.22.0[1] / 2 July 2024; 8 months ago (2 July 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 anopen sourceapplication programming interface that allows applications such asVLC media player orGStreamer to use hardware video acceleration capabilities, usually provided by thegraphics processing unit (GPU). It is implemented by thefree and open-sourcelibrarylibva, 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 atDirect Rendering Infrastructure (DRI) inX Window System onUnix-likeoperating systems (includingLinux,FreeBSD,Solaris), andAndroid, however it can potentially also be used with directframebuffer and graphics sub-systems for video output. Accelerated processing includes support forvideo decoding,video encoding, subpicture blending, and rendering.[2]

The VA-API specification was originally designed byIntel for itsGMA (Graphics Media Accelerator) series ofGPU hardware with the specific purpose of eventually replacing theXvMC standard as the default Unix multi-platform equivalent ofMicrosoft 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, andVC-1/WMV3). Extending XvMC was considered, but due to its original design for MPEG-2MotionComp only, it made more sense to design an interface from scratch that can fully expose the video decode capabilities in today'sGPUs.[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 byVDPAU
  • 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 asXvid) 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 theDRI (Direct Rendering Infrastructure) inX Window System, such as direct withframebuffer, and it can work with third-partyDRM (Direct Rendering Manager) libraries. In a nutshell, it is a scheme to pass various types of data buffers from the application to theGPU fordecoding or encoding acompressed bit-stream.

Software supporting VA-API

[edit]
A log ofFirefox 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.22.0". 2 July 2024. Retrieved2 July 2024.
  2. ^"VA-API Video Acceleration On Intel Medfield - Phoronix".Phoronix.com. Retrieved23 February 2019.
  3. ^"Video4Linux2: Path to a Standardized Video Codec API"(PDF).Events.linuxfoundation.org. Archived fromthe original(PDF) on 6 January 2014. Retrieved23 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. Retrieved23 February 2019.
  6. ^"vaapi".Freedesktop.org. Retrieved23 February 2019.
  7. ^ab"Hardware video acceleration".wiki.ArchLinux.org.
  8. ^Vilerino, Sil (2023-02-15)."Video acceleration API (VA-API) now available on Windows!".DirectX Developer Blog. Retrieved2023-03-08.
  9. ^ab"Hardware/vaapi".wiki.libav.org.Archived from the original on 2017-02-01. Retrieved2017-01-20.
  10. ^"[Client] 2.2.6 Released – Significant CPU usage reductions included".Bluecherrydvr.com. 2 March 2017. Retrieved23 February 2019.
  11. ^"datarhei Restreamer".
  12. ^"Emby Server 3.0.6400 Released".Emby.media. 29 August 2016. Retrieved23 February 2019.
  13. ^"Archived copy". Archived fromthe original on 2016-09-16. Retrieved2016-08-31.{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^"Firefox on Fedora finally gets VA-API on Wayland".mastransky.wordpress.com. 3 June 2020. Retrieved2020-08-19.
  15. ^"Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support".www.phoronix.com. Retrieved2020-08-25.
  16. ^"Fluendo".
  17. ^"Fluendo's New Codecs Support VDPAU, VA-API - Phoronix".Phoronix.com. Retrieved23 February 2019.
  18. ^"Hardware Acceleration".
  19. ^"H.264 VA-API GPU Video Acceleration For Flash - Phoronix".Phoronix.com. Retrieved23 February 2019.
  20. ^"Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API".Cgit.freedesktop.org. Retrieved23 February 2019.
  21. ^"Mailing list entry that describes uses of VA-API".Lists.moblin.org. Retrieved23 February 2019.
  22. ^"RealPlayer for MID & Intel/Linux FAQ".HelixCommunity.org. Archived fromthe original on 2012-03-24. Retrieved2011-05-12.
  23. ^"Intel GPU".jellyfin.org. Retrieved2024-12-02.
  24. ^ab"XBMC Gets Working Intel VA-API Support - Phoronix".Phoronix.com. Retrieved23 February 2019.
  25. ^"This gist contains instructions on setting up FFmpeg and Libav to use VAAPI-based hardware accelerated encoding (on supported platforms) for H.264 (and H.265 on supported hardware) video formats".Gist. Retrieved2024-12-02.
  26. ^"gbeauchesne / mplayer-vaapi".
  27. ^"Release Notes - 0.25 - MythTV Official Wiki".Mythtv.org. Retrieved23 February 2019.
  28. ^"OBS Studio Now Supports VA-API For Video Encoding - Phoronix".www.phoronix.com. Retrieved2020-08-06.
  29. ^"OpenShot Library | libopenshot".
  30. ^"VLC 1.1.0 release - VideoLAN".Videolan.org. Retrieved23 February 2019.
  31. ^"the xine project - News Feed".Xine-project.org. Retrieved23 February 2019.

External links

[edit]
Architecture
Extensions
Components
and notable
implementations
Display servers
Client libraries
Display managers
Session managers
Window managers
(comparison)
Compositing
Stacking
Tiling
Standards
Applications
OS components
Sound
Graphics
Other
Libraries
Frameworks
Meetings
Retrieved from "https://en.wikipedia.org/w/index.php?title=Video_Acceleration_API&oldid=1267031937"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp