MarketVideo Acceleration API
Company Profile

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.

Overview
The main motivation for VA-API is to enable hardware-accelerated video decode at various entry-points (VLD, IDCT, motion compensation, deblocking) 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. Supported hardware and drivers As of 2022, VA-API is natively supported by: • 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 VDPAUDirect3D 12 implementations with the VAOn12 driver 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 • VP9 8-bit and 10-bit decode acceleration • AV1 8-bit and 10-bit encode acceleration • AV1 8-bit and 10-bit decode acceleration == Processes that can be accelerated with VA-API ==
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: • Motion compensationInverse 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 ==
Software 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 ==
Software supporting VA-API
showing VA-API being used for video decoding acceleration • Chromium • Bluecherry DVR client (starting from release 2.2.6) • datarhei Restreamer real-time live video streaming • Emby media server (starting from release 3.0.6400) • ffmpeg, a command line tool from the FFmpeg project (starting from 3.1) • Firefox (On Wayland since release 78 and on X11 since release 80) • Fluendo • Frigate NVR • Gnash Flash / SWF player • GStreamer through • Helix media player (Linux) • Jellyfin media server • Kodi (formerly XBMC Media Center) (Linux) • Kodibuntu (formerly XBMC Live) (Linux Live CD/USB operating-system) • MPlayer with custom patches and its fork mpv (native) • MythTV (starting from release 0.25) • OBS Studio • OpenShot • VLC media player (starting from release 1.1.0) • Xine (via "xine-lib-vaapi" library) since Version 1.2.3 • Eranol v1.2.0 (via nextjs) == See also ==
tickerdossier.comtickerdossier.substack.com