본문으로 이동

VDPAU

한울위키, 우리 모두의 백과사전.
VDPAU
원저자엔비디아
개발자Freedesktop.org
발표일2009년 9월 17일(16년 전)(2009-09-17)[1]
안정화 버전
1.5 / 2022년 3월 7일(3년 전)(2022-03-07)[2]
저장소
  • {{URL|example.com|optional display text}}모듈:EditAtWikidata 29번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
프로그래밍 언어C, C++
엔진
    모듈:EditAtWikidata 29번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
    운영 체제크로스 플랫폼
    종류
    라이선스MIT 허가서
    웹사이트www.freedesktop.org/wiki/Software/VDPAU/

    VDPAU(Video Decode and Presentation API for Unix, 유닉스용 비디오 디코드 및 프레젠테이션 API)는 사용료 없는 애플리케이션 프로그래밍 인터페이스(API)이자 MIT 허가서에 따라 배포되는 자유-오픈 소스 라이브러리(libvdpau)로서 구현된 것이다.[1] VDPAU는 엔비디아에서도 지원한다.[3]

    VDPAU 인터페이스는 엔비디아 지포스 드라이버, 누보 또는 amdgpu와 같은 장치 드라이버에 의해 구현되어야 하며, VLC 미디어 플레이어 또는 GStreamer와 같은 최종 사용자 소프트웨어에 엔비디아의 퓨어비디오 또는 AMD의 통합 비디오 디코더와 같은 그래픽 처리 장치(GPU)의 ASIC 블록 형태의 사용 가능한 비디오 압축 해제 가속 하드웨어에 대한 표준화된 접근을 제공하고 이를 활용할 수 있도록 한다.

    VDPAU는 유닉스 계열 운영체제(리눅스, FreeBSD, 솔라리스 포함)를 대상으로 한다.[4][5][6]

    인터페이스의 기능 범위

    VDPAU를 통해 비디오 프로그램은 GPU의 특수 비디오 디코딩 ASIC에 접근하여 비디오 디코딩 프로세스의 일부와 비디오 후처리CPU에서 GPU로 오프로드할 수 있다.[7]

    현재 VDPAU에 의해 GPU로 오프로드될 수 있는 부분은 움직임 보상(mo comp), 이산 코사인 변환(iDCT), VLD(가변 길이 디코딩)MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 파트 2), H.264/MPEG-4 AVCVC-1, WMV3/WMV9 인코딩 비디오를 위한 디블록킹이다.[4] GPU로 오프로드할 수 있는 특정 코덱은 GPU 하드웨어의 세대 버전에 따라 달라진다.

    역사

    VDPAU는 원래 엔비디아가 지포스 8 시리즈 및 이후 GPU에 탑재된 자사의 퓨어비디오 SIP 블록을 위해 설계했다.[8]

    2015년 3월 9일, 엔비디아는 메인, 메인 4:4:4, 메인 스틸 픽처, 메인 10, 메인 12 프로파일에 대한 고효율 비디오 코딩(HEVC) 디코딩을 지원하는 VDPAU 버전 1.0을 출시했다.[9]

    VDPAU를 구현하는 장치 드라이버 및 비디오 컨트롤러

    VDPAU는 X11 소프트웨어 장치 드라이버에 구현되지만, 하드웨어 GPU의 가속 기능에 의존한다.

    드라이버가 VDPAU를 구현하는 모든 엔비디아 그래픽 카드는 엔비디아 퓨어비디오에 나열되어 있다.[10]

    S3 그래픽스크롬 400 비디오 카드의 리눅스 드라이버에 VDPAU를 추가했다. 리눅스 장치 드라이버 버전 14.02.17 현재, VDPAU는 S3 크롬 430 GT, S3 크롬 440 GTX, S3 크롬 530 GT 및 S3 크롬 540 GTX 하드웨어에서 사용할 수 있다.[11]

    ATI/AMD는 VDPAU 가속 기능을 갖춘 라데온 HD 4000+ 그래픽 카드용 오픈 소스 드라이버를 출시했다.[12][13]

    인텔은 VDPAU 드라이버를 제공하지 않고, 자사의 VA-API만 지원한다. 그러나 libvdpau-va-gl을 통해 인텔의 VA-API 드라이버를 사용할 수 있다.

    엔비디아는 인텔 및 ATI용 하드웨어 특정 드라이버의 예시 이름(libvdpau_intel.so 및 libvdpau_ati.so)을 언급하며 다른 GPU 설계자들이 자신들의 제품을 오픈 소스 VDPAU 라이브러리와 호환되도록 하고 VDPAU 가속 기능이 있는 드라이버를 제공하기를 바란다.[14] 인텔은 VDPAU를 고려 중이라고 밝혔다.[15]

    선시 SoC (올위너)는 실험적인 VDPAU 구현을 가지고 있다.[16]

    메사 v8.0부터는 Gallium3D를 활용하는 비디오 카드에 대한 VDPAU를 포함한다.

    제네릭 VDPAU 드라이버

    2013년 말부터는 OpenGL(그리기 및 스케일링용)과 VA-API(가능한 경우 디코딩용)를 사용하는 독립적으로 개발된 백엔드 드라이버가 있다.[17] 이는 일부 인텔 그래픽스어도비 플래시 플레이어에서 작동하는 것으로 보고되었다.[18]

    OpenGL 기능만을 이용한 가속 스케일링은 VDPAU를 사용할 수 없을 때 비가속 스케일링을 사용하는 플래시 플레이어 때문에 주로 필요하다. 리눅스나 FreeBSD에서 실행되는 거의 모든 다른 비디오 소프트웨어는 Xv를 지원한다. 이는 기본 VDPAU 지원이 없는 느린 컴퓨터에서 전체 화면 비디오에 필수적이다.

    HW 디코딩을 위한 VDPAU 대 VA-API 변환은 최신 인텔 그래픽 하드웨어에 유용하다. 일부 소프트웨어는 VDPAU를 통해 HW 디코딩을 지원하지만 VA-API를 지원하지 않기 때문이다.

    VDPAU를 지원하는 소프트웨어

    VDPAU는 VA-APIOpenMAX IL백엔드로도 사용될 수 있으며, 이들은 VDPAU 기능의 일부를 포함한다. 따라서 VA-API 또는 OpenMAX IL을 사용하는 모든 소프트웨어는 VDPAU를 부분적으로 사용할 수 있다(예: VLC 미디어 플레이어).[31]

    엔비디아 VDPAU 기능 세트

    엔비디아 VDPAU 기능 세트[32]는 (엔비디아 퓨어비디오) 하드웨어 디코딩 기능의 다양한 수준을 지원하는 GPU의 하드웨어 세대이다. 기능 세트 A, B, C의 경우 최대 비디오 너비와 높이는 2048 화소이며, 최소 너비와 높이는 48화소이고, 모든 코덱은 현재 최대 8192 매크로블록(VC-1/WMV9의 경우 8190)으로 제한된다. 부분 가속은 VLD(비트스트림) 디코딩이 CPU에서 수행되고, GPU는 IDCT, 움직임 보상디블록킹만 수행함을 의미한다. 완전 가속은 GPU가 VLD, IDCT, 움직임 보상 및 디블록킹을 모두 수행함을 의미한다.

    기능 세트 A
    H.264에 대한 완전 가속 및 MPEG-1, MPEG-2, VC-1/WMV9에 대한 부분 가속을 지원한다.
    기능 세트 B
    MPEG-1, MPEG-2, VC-1/WMV9 및 H.264에 대한 완전 가속을 지원한다.
    모든 기능 세트 B 하드웨어는 다음 너비의 H.264를 디코딩할 수 없다: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 화소.
    기능 세트 C
    MPEG-1, MPEG-2, MPEG-4 파트 2(일명 MPEG-4 ASP), VC-1/WMV9 및 H.264에 대한 완전 가속을 지원한다.
    전역 움직임 보상 및 데이터 분할은 MPEG-4 파트 2에 대해 지원되지 않는다.
    기능 세트 D
    기능 세트 C와 유사하지만 최대 4032 x 4080 해상도의 H.264 디코딩과 최대 4032 x 4048 해상도의 MPEG-1/MPEG-2 디코딩을 추가로 지원한다.
    기능 세트 E
    기능 세트 D와 유사하지만 최대 4096 x 4096 해상도의 H.264 디코딩과 최대 4080 x 4080 해상도의 MPEG-1/MPEG-2 디코딩을 추가로 지원한다. VDPAU 기능 세트 E를 사용하는 GPU는 손상된 비디오 스트림을 디코딩할 때 더 강력한 오류 처리를 제공하는 향상된 오류 은폐 모드를 지원한다.[33]
    기능 세트 F
    최대 4096 × 2304 화소 해상도의 HEVC 메인 (8비트), 메인 10 (10비트) 및 VP9 프로필 0 (8비트) 비디오 디코딩 전용이 도입되었다.[34]
    기능 세트 G
    HEVC 메인 12 (12비트) 및 VP9 프로필 2 (12비트) 비디오 디코딩에 대한 하드웨어 지원이 추가되었다.[34]
    기능 세트 H
    기능 세트 H는 8192x8192 (8K 해상도) H.265/HEVC 비디오 스트림의 하드웨어 가속 디코딩이 가능하다.[35]
    기능 세트 I
    기능 세트 H와 유사하다.[34]
    기능 세트 J
    기능 세트 J는 HEVC 444 디코드 지원을 추가한다.[34]
    기능 세트 K
    기능 세트 K는 8192x8192 (8K 해상도) AV1 MAIN 프로필 비디오 스트림의 하드웨어 가속 디코딩이 가능하다.[34]

    libvdpau 독립형 VDPAU 라이브러리

    libvdpau 독립형 VDPAU 라이브러리는 엔비디아의 독점 리눅스 그래픽 드라이버와 독립적으로 엔비디아가 배포한다. 이는 엔비디아 외부에서 VDPAU 채택을 돕기 위한 노력의 일환이다. 이 오픈 소스 라이브러리 패키지에는 다른 제조업체가 장치 드라이버에 VDPAU를 구현할 수 있도록 하는 래퍼 라이브러리와 디버깅 라이브러리가 포함되어 있다.[8][36][37][38]

    같이 보기

    각주

    1. “Announcing libvdpau 0.2”. 《freedesktop.org》. 2009년 9월 17일. 
    2. “[VDPAU] [ANNOUNCE] libvdpau 1.5”. 《Freedesktop.org》. 2022년 3월 7일. 2022년 3월 8일에 확인함. 
    3. “GStreamer Adds NVDEC NVIDIA GPU Decoding Support - Phoronix”. 
    4. 마이클 라라벨 (2008년 11월 14일). “NVIDIA Driver Brings PureVideo Features To Linux”. 《Phoronix. 2009년 3월 13일에 확인함. 
    5. 마이클 라라벨 (2008년 11월 14일). “NVIDIA VDPAU Benchmarks”. 《Phoronix. 2009년 3월 13일에 확인함. 
    6. “VDPAU: Video Decode and Presentation API for Unix”. Nvidia. 
    7. “Video4Linux2: Path to a Standardized Video Codec API” (PDF). 《Events.linusfoundation.org\accessdate=2016-05-25》. 2014년 1월 6일에 원본 문서 (PDF)에서 보존된 문서. 2013년 12월 4일에 확인함. 
    8. “NVIDIA Releases Standalone VDPAU Library – Phoronix”. Phoronix. 
    9. 라라벨, 마이클 (2015년 3월 9일). “NVIDIA Announces VDPAU 1.0 With HEVC/H.265 Decoding”. 《Phoronix》. 2015년 3월 9일에 확인함. 
    10. “PureVideo Support Table” (PDF). Nvidia. 2014년 5월 22일에 확인함. 
    11. “Archived copy”. 2012년 7월 8일에 원본 문서에서 보존된 문서. 2010년 2월 28일에 확인함. 
    12. “[PATCH] drm/radeon: UVD support for RV710-SI”. 《Lists.freedesktop.org》. 2013년 4월 2일. 2016년 5월 25일에 확인함. 
    13. “AMD Releases Open-Source UVD Video Support – Phoronix”. Phoronix. 2016년 5월 25일에 확인함. 
    14. “VDPAU: X11 Window System Integration Layer”. 《Download.nvidia.com》. 
    15. “Intel Considering VDPAU Support For X.Org Driver – Phoronix”. Phoronix. 2016년 5월 25일에 확인함. 
    16. “GitHub – linux-sunxi/libvdpau-sunxi: Experimental VDPAU for Allwinner sunxi SoCs (WiP)”. 《GitHub》. 2016년 5월 25일에 확인함. 
    17. “GitHub – i-rinat/libvdpau-va-gl: VDPAU driver with OpenGL/VAAPI backend”. 《GitHub》. 2016년 5월 25일에 확인함. 
    18. “Adobe Flash Player Hardware Acceleration on Intel Graphics Cards”. 《WebUpd8》. 2013년 9월 5일. 2016년 5월 25일에 확인함. 
    19. “Boxee blog » boxee for windows, moving up to the Major Leagues”. 2009년 6월 26일에 원본 문서에서 보존된 문서. 2009년 6월 26일에 확인함. 
    20. “Fluendo's New Codecs Support VDPAU, VA-API – Phoronix”. Phoronix.com. 2016년 5월 25일에 확인함. 
    21. 마이클 라라벨 (2008년 11월 29일). “MythTV Adds Support For NVIDIA VDPAU”. 《Phoronix. 2009년 3월 13일에 확인함. 
    22. “XBMC for Linux VDPAU – NVIDIA GPU video decoding support (now in the mainline SVN)”. Xbmc.org. 2009년 2월 28일에 원본 문서에서 보존된 문서. 2016년 5월 25일에 확인함. 
    23. “Kodi – Open Source Home Theater Software”. Xbmc.org. 2009년 4월 14일에 원본 문서에서 보존된 문서. 2016년 5월 25일에 확인함. 
    24. “XBMC Receives Mainline Support For VDPAU – Phoronix”. Phoronix. 
    25. “XBMC Receives Mainline Support For VDPAU”. 《Phoronix.com》. 2009년 3월 23일. 2016년 5월 25일에 확인함. 
    26. 마이클 라라벨 (2008년 12월 17일). “Xine Picks Up Support For NVIDIA's VDPAU”. 《Phoronix. 2009년 3월 13일에 확인함. 
    27. “xine-lib/xine-lib-1.2: changeset 11335:9b68f6efb713”. Debian.org. 2012년 7월 8일에 원본 문서에서 보존된 문서. 2016년 5월 25일에 확인함. 
    28. ddennedy (2009년 11월 30일). “VDPAU for MLT 0.4.11 Git version”. 《MLT》. 2010년 2월 27일에 원본 문서에서 보존된 문서. 2009년 11월 30일에 확인함. 
    29. “Flash Player 10.2 beta – with VDPAU acceleration! : linux”. 《reddit》. December 2010. 
    30. “mpv Reference Manual”. 2016년 4월 9일에 확인함. 
    31. 마이클 라라벨 (2009년 2월 3일). “A NVIDIA VDPAU Back-End For Intel's VA-API”. 《Phoronix. 2009년 3월 13일에 확인함. 
    32. “Appendix G. VDPAU Support”. Nvidia. 2016년 12월 14일. 2017년 1월 3일에 확인함. 
    33. “VDPAU For NVIDIA's Maxwell GPU On Linux”. 《Phoronix.com》. 2014년 3월 3일. 2016년 5월 25일에 확인함. 
    34. “Appendix G. VDPAU Support”. 《us.download.nvidia.com》. 2022년 6월 2일에 확인함. 
    35. http://www.nvidia.com/download/driverResults.aspx/104284/en-us Nvidia LINUX X64 (AMD64/EM64T) DISPLAY DRIVER Version:367.27
    36. “[ANNOUNCE] libvdpau 0.2”. 《Lists.freedesktop/org》. 2009년 9월 17일. 2016년 5월 25일에 확인함. 
    37. “NVIDIA Proposes VDPAU For DRI2 Patches – Phoronix”. Phoronix. 2016년 5월 25일에 확인함. 
    38. “[PULL] Add VDPAU drivers to the server's DRI2 implementation”. xorg. 2009년 10월 23일. 2016년 5월 25일에 확인함. 
    39. “VideoToolbox - Apple Developer Documentation”. 《developer.apple.com》. 2018년 8월 5일에 확인함. 

    외부 링크