비디오 가속 API
Video Acceleration API![]() | 이 글은 대부분의 독자들이 이해하기에는 너무 기술적인 것일 수도 있다.(2021년 11월) (이 를 과 시기 |
원본 작성자 | 인텔 |
---|---|
초기 릴리즈 | 2008 |
안정적 해제 | 2.13.0[1] / 2021년 9월 16일; |
리포지토리 | |
기록 위치 | C |
운영 체제 | Linux, Android, BSD |
유형 | API |
면허증 | MIT 면허 |
웹 사이트 | www![]() |
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]
개요
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 하드웨어가 모두 지원하는 경우 오프로드 및 가속이 가능한 비디오 디코딩 및 후 처리 프로세스:
- 운동보상
- 역 이산 코사인 변환
- 인루프 디블로킹 필터
- 프레임 내 예측
- 가변 길이 디코딩, 일반적으로 슬라이스 레벨 가속이라고 함
- 비트스트림 처리(콘텍스트 적응형 변수 길이 코딩/콘텍스트 적응형 이진 산술 코딩)
소프트웨어 아키텍처
현재 인터페이스는 윈도 시스템 독립형으로, 프레임 버퍼와 직접 등 X 윈도 시스템의 DRI(Direct Rendering Infrastructure) 이외의 그래픽 하위 시스템과 함께 잠재적으로 사용할 수 있으며, 타사 DRM(Direct Rendering Manager) 라이브러리와 함께 작동할 수 있다.간단히 말해, 압축된 비트 스트림을 디코딩하거나 인코딩하기 위해 응용 프로그램에서 GPU로 다양한 유형의 데이터 버퍼를 전달하는 방식이다.
VA-API를 지원하는 소프트웨어

- 클루터(툴킷)
- 젤리핀 미디어 서버
- Emby 미디어 서버(릴리스 3.0.6400부터)[9]
- 헬릭스 미디어 플레이어(리눅스)[10][11]
- FFmpeg 프로젝트의 명령줄 도구인 FFmpeg는 3.1 버전부터 CLI를 통해 VA-API 인코딩을 지원하고 libavcodec(FFFmpeg 프로젝트의 일부)도 VA-API를 비롯한 하드웨어 가속 디코딩을 지원하기 위해 다른 응용 프로그램이 사용하는 코드를 포함하고 있다.[12]
- 플루엔도[13]
- Gnash Flash / SWF 플레이어[14]
- gstreamer-vaapi를[15] 통한 GStreamer
- Kodi(이전의 XBMC Media Center)(리눅스)[16]
- Kodibuntu(이전의 XBMC Live)(Linux Live CD/USB 운영 체제)[16]
- MPlayer(패치가 있는 v1) [17]및 포크 mpv(원본)
- 신화TV (릴리스 0.25부터 시작)[18]
- VLC 미디어 플레이어(릴리스 1.1.0부터 시작)[19]
- Bluecherry DVR 클라이언트(릴리스 2.2.6부터)[20]
- 버전 1.2.3[21] 이후 Xine("xine-lib-vaapi" 라이브러리 사용)
- 개방형 방송사 소프트웨어[22]
- Firefox(릴리스 78 이후 및 릴리즈 80 이후 X11 이후)[23][24]
참고 항목
- 분산 코덱 엔진(libdce) — OMAP 기반 임베디드 시스템의 비디오 코덱 엔진을 위한 Texas Instruments API
- OpenMAX - Khronos 그룹의 로열티 없는 교차 플랫폼 미디어 추상화 API
참조
- ^ "Release 2.13.0".
- ^ "VA-API Video Acceleration On Intel Medfield - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ "Video4Linux2: Path to a Standardized Video Codec API" (PDF). Events.linuxfoundation.org. Retrieved 23 February 2019.
- ^ Nathan Willis (2009-07-01). "VA API slowly, but surely, making progress". Lwn.net.
- ^ "Mplayer, FFmpeg Gain VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ "vaapi". Freedesktop.org. Retrieved 23 February 2019.
- ^ "Hardware video acceleration". wiki.ArchLinux.org.
- ^ a b "Hardware/vaapi". wiki.libav.org. Archived from the original on 2017-02-01. Retrieved 2017-01-20.
- ^ "Emby Server 3.0.6400 Released". Emby.media. 29 August 2016. Retrieved 23 February 2019.
- ^ "Mailing list entry that describes uses of VA-API". Lists.moblin.org. Retrieved 23 February 2019.
- ^ "RealPlayer for MID & Intel/Linux FAQ". HelixCommunity.org. Archived from the original on 2012-03-24. Retrieved 2011-05-12.
- ^ "Archived copy". Archived from the original on 2016-09-16. Retrieved 2016-08-31.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ "Fluendo's New Codecs Support VDPAU, VA-API - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ "H.264 VA-API GPU Video Acceleration For Flash - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ "Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API". Cgit.freedesktop.org. Retrieved 23 February 2019.
- ^ a b "XBMC Gets Working Intel VA-API Support - Phoronix". Phoronix.com. Retrieved 23 February 2019.
- ^ "Archived copy". Archived from the original on 2013-08-03. Retrieved 2014-02-10.
{{cite web}}
: CS1 maint: 타이틀로 보관된 사본(링크) - ^ "Release Notes - 0.25 - MythTV Official Wiki". Mythtv.org. Retrieved 23 February 2019.
- ^ "VLC 1.1.0 release - VideoLAN". Videolan.org. Retrieved 23 February 2019.
- ^ "[Client] 2.2.6 Released – Significant CPU usage reductions included". Bluecherrydvr.com. 2 March 2017. Retrieved 23 February 2019.
- ^ "the xine project - News Feed". Xine-project.org. Retrieved 23 February 2019.
- ^ "OBS Studio Now Supports VA-API For Video Encoding - Phoronix". www.phoronix.com. Retrieved 2020-08-06.
- ^ "Firefox on Fedora finally gets VA-API on Wayland". mastransky.wordpress.com. Retrieved 2020-08-19.
- ^ "Firefox 80 Available With VA-API On X11, WebGL Parallel Shader Compile Support". www.phoronix.com. Retrieved 2020-08-25.
외부 링크
- 공식 웹사이트
- 리눅스용 Intel 미디어 및 오디오
- 이동식 활쏘기
- "VA API가 느리지만 확실히 진전을 이루고 있다" – 2009년 개요
- "MPlayer, FFmpeg Gain VA-API 지원" – 2008년부터