비디오 가속 API

Video Acceleration API
libva.
원본 작성자인텔
초기 릴리즈2008
안정적 해제
2.13.0[1] / 2021년 9월 16일; 6개월 전(2021년 9월 16일)
리포지토리
기록 위치C
운영 체제Linux, Android, BSD
유형API
면허증MIT 면허
웹 사이트www.freedesktop.org/wiki/Software/vaapi/ Edit this on Wikidata

VA-API(Video Acceleration API)는 VLC 미디어 플레이어GStreamer와 같은 애플리케이션이 하드웨어 비디오 가속 기능을 사용할 수 있도록 하는 오픈 소스 애플리케이션 프로그래밍 인터페이스로, 보통 GPU(Graphics Processing Unit)에서 제공한다.그것은 자유 및 오픈 소스 라이브러리에 의해 구현된다. libva는 하드웨어 특정 드라이버와 결합되며, 일반적으로 GPU 드라이버와 함께 제공된다.

VA-API 비디오 디코드/엔코드 인터페이스는 플랫폼 및 윈도우 시스템에 독립적이지만 주로 유닉스 유사 운영 체제(Linux, FreeBSD, Solaris 포함) 및 Android의 X 윈도우 시스템의 DRI(Direct Rendering Infrastructure)를 대상으로 하지만, 비디오 아웃푸를 위한 직접 프레임 버퍼 및 그래픽 하위 시스템에도 사용할 수 있다.t. 가속 처리에는 비디오 디코딩, 비디오 인코딩, 하위 사진 혼합 및 렌더링에 대한 지원이 포함된다.[2]

VA-API 사양은 원래 인텔마이크로소프트 윈도 DirectX 비디오 가속(DxVA) API와 동등한 기본 유닉스 멀티플랫폼으로 XvMC 표준을 궁극적으로 대체하는 구체적인 목적을 가진 GPA(Graphics Media Accelerator) 시리즈 GPU 하드웨어용으로 설계한 것이지만, 오늘날 API는 더 이상 인텔-specif에 국한되지 않는다.IC 하드웨어 또는 GPU.[3]다른 하드웨어와 제조업체는 로열티 수수료를 지불하지 않고 하드웨어 가속 비디오 처리를 위해 이 개방형 표준 API를 자유롭게 사용할 수 있다.[4]

개요

VA-API 가속화에 지원되는 비디오 코덱을 보여주는 boneyfo 출력 예제

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).XvMC를 확장하는 것이 고려되었지만 MPEG-2 MotionComp만을 위한 원래의 설계 때문에 오늘날의 GPU에서 비디오 디코딩 기능을 완전히 노출시킬 수 있는 인터페이스를 처음부터 설계하는 것이 더 타당했다.[6]

지원되는 하드웨어 및 드라이버

2019년 현재 VA-API는 기본적으로 다음에 의해 지원된다.[7]

  • 리눅스용 Intel Quick Sync 오픈 소스 드라이버
  • AMD 및 Intel 그래픽 카드용 Mesa 오픈 소스 드라이버
  • Linux에서 AMD 그래픽 카드용 AMDGPU-PRO 드라이버
  • VDPAU에서 지원하는 카드용 libva-vdpau 드라이버

지원되는 비디오 코덱

VA-API는 현재 공식 메인라인 버전에서 이러한 비디오 코덱을 지원하지만, 정확히 어떤 비디오 코덱이 지원되는지는 하드웨어와 드라이버의 기능에 따라 결정된다는 점에 유의한다.

  • MPEG-2 디코딩 가속 주 프로파일
  • VC-1 / WMV3 디코드 가속 고급 프로파일
  • MPEG-4 Part 2 (H.263) (예: MPEG-4 SP/MPEG-4 ASP, 일반적으로 Xvid로 알려져 있음) 디코드 가속
  • H.264 AVC 인코드 가속 주 프로파일
  • H.264 AVC 디코드 가속 하이 프로파일
    • H.264 / AVC 하드웨어 가변 길이 디코딩(VLD) - CABAC
    • H.264 / AVC 하드웨어 가변 길이 디코딩(VLD) - CAVLC
    • H.264 / AVC 하드웨어 역변환(IT)
    • H.264 / AVC 하드웨어 동작 보상(HWMC)
    • H.264 / AVC 하드웨어 인루프 디블록킹(ILDB)
  • H.265/HEVC 인코드 가속
  • H.265/HEVC 디코드 가속
  • VP9 8비트 인코드 가속[8]
  • VP9 8비트 및 10비트 디코드 가속[8]

VA-API를 사용하여 가속할 수 있는 프로세스

장치 드라이버와 GPU 하드웨어가 모두 지원하는 경우 오프로드 및 가속이 가능한 비디오 디코딩 및 후 처리 프로세스:

소프트웨어 아키텍처

비디오 가속 API 아키텍처

현재 인터페이스는 윈도 시스템 독립형으로, 프레임 버퍼와 직접 등 X 윈도 시스템의 DRI(Direct Rendering Infrastructure) 이외의 그래픽 하위 시스템과 함께 잠재적으로 사용할 수 있으며, 타사 DRM(Direct Rendering Manager) 라이브러리와 함께 작동할 수 있다.간단히 말해, 압축된 비트 스트림을 디코딩하거나 인코딩하기 위해 응용 프로그램에서 GPU로 다양한 유형의 데이터 버퍼를 전달하는 방식이다.

VA-API를 지원하는 소프트웨어

비디오 디코딩 가속화에 사용되는 VA-API를 보여주는 Firefox 로그

참고 항목

  • 분산 코덱 엔진(libdce) — OMAP 기반 임베디드 시스템의 비디오 코덱 엔진을 위한 Texas Instruments API
  • OpenMAX - Khronos 그룹의 로열티 없는 교차 플랫폼 미디어 추상화 API

참조

  1. ^ "Release 2.13.0".
  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. ^ "Hardware video acceleration". wiki.ArchLinux.org.
  8. ^ a b "Hardware/vaapi". wiki.libav.org. Archived from the original on 2017-02-01. Retrieved 2017-01-20.
  9. ^ "Emby Server 3.0.6400 Released". Emby.media. 29 August 2016. Retrieved 23 February 2019.
  10. ^ "Mailing list entry that describes uses of VA-API". Lists.moblin.org. Retrieved 23 February 2019.
  11. ^ "RealPlayer for MID & Intel/Linux FAQ". HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
  12. ^ "Archived copy". Archived from the original on 2016-09-16. Retrieved 2016-08-31.{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크)
  13. ^ "Fluendo's New Codecs Support VDPAU, VA-API - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  14. ^ "H.264 VA-API GPU Video Acceleration For Flash - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  15. ^ "Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API". Cgit.freedesktop.org. Retrieved 23 February 2019.
  16. ^ a b "XBMC Gets Working Intel VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
  17. ^ "Archived copy". Archived from the original on 2013-08-03. Retrieved 2014-02-10.{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크)
  18. ^ "Release Notes - 0.25 - MythTV Official Wiki". Mythtv.org. Retrieved 23 February 2019.
  19. ^ "VLC 1.1.0 release - VideoLAN". Videolan.org. Retrieved 23 February 2019.
  20. ^ "[Client] 2.2.6 Released – Significant CPU usage reductions included". Bluecherrydvr.com. 2 March 2017. Retrieved 23 February 2019.
  21. ^ "the xine project - News Feed". Xine-project.org. Retrieved 23 February 2019.
  22. ^ "OBS Studio Now Supports VA-API For Video Encoding - Phoronix". www.phoronix.com. Retrieved 2020-08-06.
  23. ^ "Firefox on Fedora finally gets VA-API on Wayland". mastransky.wordpress.com. Retrieved 2020-08-19.
  24. ^ "Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support". www.phoronix.com. Retrieved 2020-08-25.

외부 링크