비디오 가속 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.

외부 링크