VDPAU- VDPAU

VDPAU
Originalautor(en) Nvidia
Entwickler freedesktop.org
Stabile Version
1.3 / 18. Oktober 2019 ; vor 23 Monaten ( 18.10.2019 )
Geschrieben in C , C++
Betriebssystem Plattformübergreifend
Typ
Lizenz MIT-Lizenz
Webseite www .freedesktop .org /wiki /Software /VDPAU /

Video Decode and Presentation API for Unix ( VDPAU ) ist eine gebührenfreie Anwendungsprogrammierschnittstelle (API) sowie deren Implementierung als freie und Open-Source- Bibliothek ( libvdpau ), die unter der MIT-Lizenz vertrieben wird . VDPAU wird auch von Nvidia unterstützt .

Die VDPAU-Schnittstelle soll durch Gerätetreiber wie Nvidia GeForce driver , nouveau , amdgpu implementiert werden , um Endbenutzersoftware wie VLC Media Player oder GStreamer einen standardisierten Zugriff auf verfügbare Videodekomprimierungs- Beschleunigungshardware in Form von Anwendungen zu bieten -spezifische integrierte Schaltungsblöcke (ASIC) auf Grafikprozessoren (GPU) wie Nvidias PureVideo oder AMDs Unified Video Decoder und nutzen diese.

VDPAU richtet sich an Unix-ähnliche Betriebssysteme (einschließlich Linux , FreeBSD , Solaris ).

Funktionsumfang der Schnittstelle

VDPAU ermöglicht es Videoprogrammen, auf den spezialisierten Videodecodierungs-ASIC auf der GPU zuzugreifen, um Teile des Videodecodierungsprozesses und der Videonachverarbeitung von der CPU auf die GPU auszulagern.

Derzeit sind die Teile, die von VDPAU auf die GPU ausgelagert werden können, Bewegungskompensation (mo comp), inverse diskrete Kosinustransformation (iDCT), VLD (Decodierung mit variabler Länge) und Deblocking für MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Teil 2) , H.264/MPEG-4 AVC und VC-1 , WMV3 / WMV9 kodierte Videos. Welche spezifischen Codecs davon auf die GPU ausgelagert werden können, hängt von der Generationsversion der GPU-Hardware ab.

Geschichte

VDPAU wurde ursprünglich von Nvidia für ihren PureVideo SIP-Block entwickelt , der auf ihrer GeForce 8-Serie und späteren GPUs vorhanden ist.

Am 9. März 2015 hat Nvidia die VDPAU-Version 1.0 veröffentlicht, die die High Efficiency Video Coding (HEVC)-Decodierung für die Profile Main, Main 4:4:4, Main Stand Picture, Main 10 und Main 12 unterstützt.

Gerätetreiber und Videocontroller, die VDPAU implementieren

VDPAU wird in implementiert X11 Software - Gerätetreiber , sondern stützt sich auf Beschleunigungsfunktionen in dem Hardware - GPU.

Alle Nvidia-Grafikkarten, für die der Treiber VDPAU implementiert, sind in Nvidia PureVideo aufgelistet .

S3 Graphics hat VDPAU zu den Linux-Treibern ihrer Chrome 400 -Grafikkarten hinzugefügt . Ab Version 14.02.17 seines Linux-Gerätetreibers ist VDPAU mit der Hardware S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT und S3 Chrome 540 GTX verfügbar.

ATI/AMD hat einen Open-Source-Treiber für Radeon HD 4000+ Grafikkarten mit VDPAU-Beschleunigung veröffentlicht.

Intel bietet keine VDPAU-Treiber an, sie unterstützen nur ihre VA-API . Es ist jedoch möglich, Intels VA-API-Treiber über libvdpau-va-gl zu verwenden .

Nvidia hofft, dass andere GPU-Designer ihre Produkte mit der Open-Source-VDPAU-Bibliothek kompatibel machen und Treiber mit VDPAU-Beschleunigung bereitstellen, indem sie Beispielnamen hardwarespezifischer Treiber für Intel und ATI erwähnen: libvdpau_intel.so und libvdpau_ati.so. Intel hat erklärt, dass sie VDPAU in Betracht ziehen.

sunxi SoCs ( Allwinner ) verfügen über eine experimentelle VDPAU-Implementierung.

Mesa ab v8.0 enthält VDPAU für Grafikkarten, die Gallium3D verwenden .

Generischer VDPAU-Treiber

Seit Ende 2013 gibt es einen unabhängig entwickelten Backend-Treiber, der wiederum OpenGL (zum Zeichnen und Skalieren) und falls vorhanden VA-API (zum Decodieren) verwendet. Es wurde berichtet , dass es auf einigen Intel - Grafiken und Adobe Flash Player funktioniert .

Die beschleunigte Skalierung mit nur OpenGL-Funktionalität wird hauptsächlich wegen des Flash Players benötigt, der eine nicht beschleunigte Skalierung verwendet, wenn VDPAU nicht verfügbar ist. Fast alle andere Videosoftware, die unter Linux oder FreeBSD läuft, unterstützt Xv . Dies ist für Vollbildvideos auf langsameren Computern ohne native VDPAU-Unterstützung unerlässlich.

Die Übersetzung von VDPAU in VA-API für die HW-Decodierung ist bei neuerer Intel-Grafikhardware nützlich, da einige Software die HW-Decodierung über VDPAU, jedoch nicht über die VA-API unterstützt.

Software, die VDPAU . unterstützt

VDPAU kann auch als Backend für VA-API und OpenMAX IL verwendet werden , die selbst eine Teilmenge der VDPAU-Funktionen abdecken; daher ist jede Software, die die VA-API oder OpenMAX IL verwendet, teilweise auch in der Lage, VDPAU zu verwenden (zB VLC Media Player).

Nvidia VDPAU-Funktionssets

Nvidia VDPAU Feature Sets sind verschiedene Hardware-Generationen von GPUs, die verschiedene Ebenen von (Nvidia PureVideo) Hardware-Dekodierungsfunktionen unterstützen. Für die Feature-Sets A, B und C beträgt die maximale Videobreite und -höhe 2048 Pixel , die minimale Breite und Höhe 48 Pixel, und alle Codecs sind derzeit auf maximal 8192 Makroblöcke (8190 für VC-1/WMV9) beschränkt. Partielle Beschleunigung bedeutet, dass die VLD- Decodierung (Bitstream) auf der CPU durchgeführt wird, wobei die GPU nur IDCT , Bewegungskompensation und Deblocking durchführt . Vollständige Beschleunigung bedeutet, dass die GPU alle VLD, IDCT, Bewegungskompensation und Deblocking durchführt.

Funktionssatz A
Unterstützt vollständige Beschleunigung für H.264 und teilweise Beschleunigung für MPEG-1 , MPEG-2 , VC-1 / WMV9
Funktionssatz B
Unterstützt vollständige Beschleunigung für MPEG-1, MPEG-2, VC-1/WMV9 und H.264.
Beachten Sie, dass die gesamte Feature-Set-B-Hardware H.264 für die folgenden Breiten nicht decodieren kann: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 Pixel.
Funktionsumfang C
Unterstützt vollständige Beschleunigung für MPEG-1, MPEG-2, MPEG-4 Part 2 (auch bekannt als MPEG-4 ASP) , VC-1/WMV9 und H.264.
Globale Bewegungskompensation und Datenpartitionierung werden für MPEG-4 Teil 2 nicht unterstützt.
Funktionsumfang D
Ähnlich wie Feature-Set C, aber zusätzliche Unterstützung für die Dekodierung von H.264 mit einer Auflösung von bis zu 4032 × 4080 und MPEG-1/MPEG-2 mit einer Auflösung von bis zu 4032 × 4048 Pixel.
Funktionssatz E
Ähnlich wie Feature-Set D, aber zusätzliche Unterstützung für die Dekodierung von H.264 mit einer Auflösung von bis zu 4096 × 4096 und MPEG-1/MPEG-2 mit einer Auflösung von bis zu 4080 × 4080 Pixel. GPUs mit VDPAU-Funktionssatz E unterstützen einen verbesserten Fehlerverbergungsmodus, der eine robustere Fehlerbehandlung beim Decodieren beschädigter Videostreams bietet.
Funktionsumfang F
Einführung der dedizierten HEVC Main (8-Bit) und Main 10 (10-Bit) Videodecodierung mit einer Auflösung von bis zu 4096 × 2304 Pixel.
Funktionssatz G
Hardwareunterstützung für HEVC Main 12 (12-Bit)-Videodecodierung, aber VDPAU unterstützt dieses Profil derzeit nicht.
Funktionssatz H
Feature Set H ist zur hardwarebeschleunigten Dekodierung von 8192x8192 (8k Auflösung) H.265/HEVC Videostreams fähig.

libvdpau eigenständige VDPAU-Bibliothek

Die eigenständige VDPAU-Bibliothek libvdpau wird von Nvidia unabhängig von ihrem proprietären Linux-Grafiktreiber vertrieben, um die Einführung von VDPAU durch diejenigen außerhalb von Nvidia zu unterstützen. Dieses Open-Source-Bibliothekspaket enthält eine Wrapper-Bibliothek und eine Debugging-Bibliothek, die es anderen Herstellern ermöglicht, VDPAU in ihren Gerätetreibern zu implementieren.

Siehe auch

Verweise

Externe Links