VDPAU - VDPAU

VDPAU
Pierwotny autor (autorzy) Nvidia
Deweloper(zy) freedesktop.org
Wersja stabilna
1.3 / 18 października 2019 ; 23 miesiące temu ( 18.10.2019 )
Napisane w C , C++
System operacyjny Wieloplatformowy
Rodzaj
Licencja Licencja MIT
Strona internetowa www .freedesktop .org /wiki /Oprogramowanie /VDPAU /

Video Decode and Presentation API for Unix ( VDPAU ) to darmowy interfejs programowania aplikacji (API), a także jego implementacja jako bezpłatna biblioteka o otwartym kodzie źródłowym ( libvdpau ) dystrybuowana na licencji MIT . VDPAU jest również obsługiwany przez Nvidię .

Interfejs VDPAU ma być zaimplementowany przez sterowniki urządzeń , takie jak sterownik Nvidia GeForce , nouveau , amdgpu , aby zaoferować oprogramowanie użytkownika końcowego, takie jak VLC media player czy GStreamer , ustandaryzowany dostęp do dostępnego sprzętu przyspieszającego dekompresję wideo w postaci aplikacji specyficzne bloki układów scalonych (ASIC) na procesorach graficznych (GPU), takich jak PureVideo firmy Nvidia lub Unified Video Decoder firmy AMD, i korzystają z nich.

VDPAU jest przeznaczony dla systemów operacyjnych typu Unix (w tym Linux , FreeBSD , Solaris ).

Zakres funkcjonalny interfejsu

VDPAU umożliwia programom wideo dostęp do wyspecjalizowanego dekodowania wideo ASIC na GPU w celu odciążenia części procesu dekodowania wideo i przetwarzania końcowego wideo z procesora CPU na procesor graficzny.

Obecnie częściami, które można przenieść przez VDPAU na GPU, są kompensacja ruchu (mo comp), odwrócona dyskretna transformacja kosinusowa (iDCT), VLD (dekodowanie o zmiennej długości) i odblokowywanie dla MPEG-1 , MPEG-2 , MPEG-4 Asp (MPEG-4 Część 2) , H.264 / MPEG-4 AVC i VC-1 , WMV3 / WMV9 kodowane filmy. To, które z tych kodeków można odciążyć na GPU, zależy od wersji generacji sprzętu GPU.

Historia

VDPAU został pierwotnie zaprojektowany przez Nvidię dla ich bloku PureVideo SIP obecnego w ich serii GeForce 8 i późniejszych procesorach graficznych.

9 marca 2015 r. Nvidia wydała VDPAU w wersji 1.0, która obsługuje dekodowanie High Efficiency Video Coding (HEVC) dla profili Main, Main 4: 4: 4, Main Still Picture, Main 10 i Main 12.

Sterowniki urządzeń i kontrolery wideo implementujące VDPAU

VDPAU jest zaimplementowany w sterownikach urządzeń programowych X11 , ale opiera się na funkcjach akceleracji w sprzętowym GPU.

Wszystkie karty graficzne Nvidii, dla których sterownik implementuje VDPAU, są wymienione w Nvidia PureVideo .

Firma S3 Graphics dodała VDPAU do sterowników Linuksa swoich kart graficznych Chrome 400 . Od wersji 14.02.17 sterownika urządzenia dla systemu Linux, VDPAU jest dostępny ze sprzętem S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT i S3 Chrome 540 GTX.

Firma ATI/AMD wydała sterownik open source dla kart graficznych Radeon HD 4000+ z akceleracją VDPAU.

Intel nie oferuje sterowników VDPAU, obsługują tylko ich VA-API . Możliwe jest jednak użycie sterowników VA-API firmy Intel za pomocą libvdpau-va-gl .

Nvidia ma nadzieję, że inni projektanci GPU uczynią swoje produkty kompatybilne z biblioteką VDPAU open source i zapewnią sterowniki z akceleracją VDPAU, podając przykładowe nazwy sterowników specyficznych dla sprzętu dla Intela i ATI: libvdpau_intel.so i libvdpau_ati.so. Intel oświadczył, że rozważa VDPAU.

Sunxi SoC ( Allwinner ) mają eksperymentalną implementację VDPAU.

Mesa od wersji 8.0 zawiera VDPAU dla kart graficznych wykorzystujących Gallium3D .

Ogólny sterownik VDPAU

Od końca 2013 r. istnieje niezależnie opracowany sterownik zaplecza, który z kolei wykorzystuje OpenGL (do rysowania i skalowania) oraz VA-API, jeśli jest dostępny (do dekodowania). Zgłoszono, że działa na niektórych grafikach Intela i Adobe Flash Playerze .

Przyspieszone skalowanie z samą funkcjonalnością OpenGL jest potrzebne głównie z powodu Flash Playera, który używa nieprzyspieszonego skalowania, jeśli VDPAU jest niedostępne. Prawie każde inne oprogramowanie wideo działające pod Linuksem lub FreeBSD obsługuje Xv . Jest to niezbędne w przypadku pełnoekranowego wideo na wolniejszych komputerach bez natywnej obsługi VDPAU.

Translacja VDPAU do VA-API w celu dekodowania sprzętowego jest przydatna w przypadku najnowszego sprzętu graficznego firmy Intel, ponieważ niektóre programy obsługują dekodowanie sprzętowe przez VDPAU, ale nie VA-API.

Oprogramowanie obsługujące VDPAU

VDPAU może być również używany jako backend dla VA-API i OpenMAX IL , które same obejmują podzbiór możliwości VDPAU; więc każde oprogramowanie, które używa VA-API lub OpenMAX IL, jest również częściowo zdolne do korzystania z VDPAU (np. VLC media player).

Zestawy funkcji Nvidia VDPAU

Zestawy funkcji Nvidia VDPAU to różne generacje sprzętowe procesorów graficznych obsługujące różne poziomy możliwości dekodowania sprzętowego (Nvidia PureVideo). W przypadku zestawów funkcji A, B i C maksymalna szerokość i wysokość wideo to 2048 pikseli , minimalna szerokość i wysokość 48 pikseli, a wszystkie kodeki są obecnie ograniczone do maksymalnie 8192 makrobloków (8190 dla VC-1/WMV9). Przyspieszenie częściowe oznacza, że dekodowanie VLD (strumienia bitów) jest wykonywane przez procesor, a GPU wykonuje tylko IDCT , kompensację ruchu i odblokowywanie . Pełna akceleracja oznacza, że ​​GPU wykonuje wszystkie VLD, IDCT, kompensację ruchu i odblokowywanie.

Zestaw funkcji A
Obsługuje pełną akcelerację dla H.264 i częściową akcelerację dla MPEG-1 , MPEG-2 , VC-1 / WMV9
Zestaw funkcji B
Obsługuje pełną akcelerację dla MPEG-1, MPEG-2, VC-1/WMV9 i H.264.
Należy zauważyć, że wszystkie elementy zestawu funkcji B nie mogą dekodować H.264 dla następujących szerokości: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 pikseli.
Zestaw funkcji C
Obsługuje pełną akcelerację dla MPEG-1, MPEG-2, MPEG-4 Part 2 (aka MPEG-4 ASP) , VC-1/WMV9 i H.264.
Globalna kompensacja ruchu i partycjonowanie danych nie są obsługiwane w przypadku MPEG-4 część 2.
Zestaw funkcji D
Podobny do zestawu funkcji C, ale dodano obsługę dekodowania H.264 z rozdzielczością do 4032 × 4080 i MPEG-1/MPEG-2 z rozdzielczością do 4032 × 4048 pikseli.
Zestaw funkcji E
Podobny do zestawu funkcji D, ale dodano obsługę dekodowania H.264 z rozdzielczością do 4096 × 4096 i MPEG-1/MPEG-2 z rozdzielczością do 4080 × 4080 pikseli. Procesory GPU z zestawem funkcji VDPAU E obsługują ulepszony tryb ukrywania błędów, który zapewnia bardziej niezawodną obsługę błędów podczas dekodowania uszkodzonych strumieni wideo.
Zestaw funkcji F
Wprowadzono dedykowane dekodowanie wideo HEVC Main (8-bit) i Main 10 (10-bit) z rozdzielczością do 4096 × 2304 pikseli.
Zestaw funkcji G
Obsługa sprzętowa dekodowania wideo HEVC Main 12 (12-bitowego), ale VDPAU nie obsługuje obecnie tego profilu.
Zestaw funkcji H
Zestaw funkcji H umożliwia dekodowanie z przyspieszeniem sprzętowym strumieni wideo 8192x8192 (rozdzielczość 8k) H.265/HEVC.

libvdpau samodzielna biblioteka VDPAU

Samodzielna biblioteka VDPAU libvdpau jest dystrybuowana przez firmę Nvidia niezależnie od jej prawnie zastrzeżonego sterownika graficznego Linux, aby pomóc w adopcji VDPAU przez osoby spoza Nvidii. Ten pakiet bibliotek typu open source zawiera bibliotekę otoki i bibliotekę debugowania, umożliwiającą innym producentom implementację VDPAU w swoich sterownikach urządzeń.

Zobacz też

Bibliografia

Zewnętrzne linki