DVB-Cube <<< Das deutsche PC und DVB-Forum >>>

Diverse DVB Software für verschiedene Karten => # Linux DVB (vdr, kaffeine, ect.) => Thema gestartet von: mtron am 15 Dezember, 2008, 17:29

Titel: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 15 Dezember, 2008, 17:29
Nvidia hat einen neuen Closed - Source Treiber veröffentlicht, der die VGA nützt um h264 material zu dekodieren und somit den Prozessor stark entlastet.

Unterstützt werden Karten mit VP2 Chip... Also der GPU der Vga muss mindestens G84 sein! 

Zitat
VDPAU is currently supported on the following NVIDIA GPUs:

Desktop GPUs:
GeForce 200 Series
GeForce 9 Series
GeForce 86xx Series
GeForce 85xx Series
GeForce 84xx Series
GeForce 8300 GS
GeForce 8800 GTS 512
GeForce 8800 GT
GeForce 8800 GS

Mobile GPUs:
GeForce 98xxM
GeForce 9700M
GeForce 96xxM
GeForce 9500M
GeForce 9300M
GeForce 9200M
GeForce 8800M
GeForce 8800M GTS
GeForce 8800M GTX
GeForce 8600M
GeForce 8400M

Motherboard GPUs:
GeForce 9400
GeForce 9300
GeForce 9100
GeForce 8300
GeForce 8200

jedoch ist die api selbst noch nicht fertig und im nvidia forum hat ein developer gepostet dass h264 hw encoding auch auf die 7x Serie zurückportiert werden könnte (aber nicht mpeg2 HW decoding) ... vp1 hardware natürlich vorausgesetzt.

Zum testen am besten mplayer svn & patch installieren oder einen checkout der gepatchten ffmpeg version installieren & mit ffplay abspielen und staunen :)

Das Testergebnis eines Core 2 Duo E8400 & GeForce 9800GTX (alt: 48 %, mit neuer api: 10 %)

(http://www.phoronix.com/data/img/results/nvidia_vdpau/h264-vdpau.png)


Nvidia PureVideo Linux Beta Treiber: http://www.nvnews.net/vbulletin/showthread.php?t=123091
PureVideo Linux Dokumentation: ftp://download.nvidia.com/XFree86/vdpau/doxygen/html/index.html
ffmpeg fork mit der neuen nvidia api: http://repo.or.cz/w/FFMpeg-mirror/ffmpeg-vdpau.git
mplayer patch: ftp://download.nvidia.com/XFree86/vdpau/mplayer-vdpau-3219724.tar.bz2
 README: ftp://download.nvidia.com/XFree86/vdpau/mplayer-vdpau-3076399.README.txt
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 07 Juli, 2009, 16:42
Hallo allerseits,

ich war ewig nicht da, aber nun kann/will ich mich wieder mit DVB-S bzw. S2 unter linux beschaeftigen! Wie ist denn der aktuelle Stand des Linuxgrafikkartentreibers fuer Nvidia (8600GT) bzgl. h.264? Kann man kaffeine nutzen und den h.264-Stream bei DVB-S2 einer Budgetkarte mit dieser Grafikkarte unter Linux (Ubuntu 9.04 64bit) dekodieren? Meine CPU ist sonst zu lahm dafuer (AMD Athlon XP 3200)...

Ich habe schon eine Zeit im Web gesucht, aber nichts verwertbares an Infos gefunden...

Besten Dank,
Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: Warpi am 07 Juli, 2009, 18:18
Kann hier nur meine Ati-Erfahrungen zum besten geben ... ;)

http://www.dvbcube.org/index.php?topic=24807.msg112527#msg112527 (http://www.dvbcube.org/index.php?topic=24807.msg112527#msg112527)
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 07 Juli, 2009, 19:38
Servus!
Zitat
Wie ist denn der aktuelle Stand des Linuxgrafikkartentreibers fuer Nvidia (8600GT) bzgl. h.264?

hardwarebeschleunigtes h264 mit deinterlacing sollte hinhauen.

 Ein vdpau benchmarking tool gibts hier: http://hftom.free.fr/qvdpautest-0.3.tar.gz (http://hftom.free.fr/qvdpautest-0.3.tar.gz)
zur interpretation der ergebnisse schau mal auf http://www.nvnews.net/vbulletin/showthread.php?t=133465 (http://www.nvnews.net/vbulletin/showthread.php?t=133465)).  

Über den support von "Vdpau" bei den verschiedenen nvidia chipsets ist da ein interessanter thread:
http://www.gossamer-threads.com/lists/mythtv/mythtvnz/385602 (http://www.gossamer-threads.com/lists/mythtv/mythtvnz/385602)

Zitat
Kann man kaffeine nutzen und den h.264-Stream bei DVB-S2 einer Budgetkarte mit dieser Grafikkarte unter Linux (Ubuntu 9.04 64bit) dekodieren? Meine CPU ist sonst zu lahm dafuer (AMD Athlon XP 3200)

ja sogar wunderbar (bei mir mit sempron 3000+ mit 30% CPU bei 720p  ;D . Softwaremässig funktioniert das mittels xine-vdpau (http://www.jusst.de/vdpau/listing.php?repname=xine-vdpau&path=&), . um das mit kaffeine verwenden zu können muss die kaffeine binary mit
./configure --without-xcb
gebaut werden. xine-vdpau wird vom ehemaligen kaffeine maintainer hftom geschrieben und funzt super mit kaffeine :) . mehr dazu: http://www.nvnews.net/vbulletin/showthread.php?t=124791 (http://www.nvnews.net/vbulletin/showthread.php?t=124791)
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: kater am 07 Juli, 2009, 19:55
bei ATI ist Röhre gucken angesagt  :P
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 08 Juli, 2009, 00:00
Besten Dank fuer die umfassenden Infos!

qvdpautest bringt bei mir folgendes:

Zitat
SURFACE GET BITS: 597.534 M/s
SURFACE PUT BITS: 343.382 M/s

MPEG DECODING (1920x1080): 64 frames/s
MPEG DECODING (1280x720): 151 frames/s
H264 DECODING (1920x1080): 45 frames/s
H264 DECODING (1280x720): 99 frames/s
VC1 DECODING (1440x1080): 95 frames/s

MIXER WEAVE (1920x1080): 1129 frames/s
MIXER BOB (1920x1080): 1551 fields/s
MIXER TEMPORAL (1920x1080): 363 fields/s
MIXER TEMPORAL + SKIP_CHROMA (1920x1080): 484 fields/s
MIXER TEMPORAL_SPATIAL (1920x1080): 99 fields/s
MIXER TEMPORAL_SPATIAL + SKIP_CHROMA (1920x1080): 108 fields/s

MIXER TEMPORAL_SPATIAL (720x576 video to 1920x1080 display): 388 fields/s

Laut der genannten Website mit Vergleichen sollte dies annehmbar sein, oder? Da werde ich mir die Tage mal Kaffeine mit vdpau-xine bauen!

Gruss, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 08 Juli, 2009, 14:45
99 frames/s bei 720p ist weit mehr als du brauchst (bei 1080 sendern könnte es knapp werden). Aber da die meisten ÖR & arteHD in 720p senden (werden) würd ich es auf alle fälle probieren  ;)

Und ein spass ist das basteln selbst allemal  ;D
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 09 Juli, 2009, 22:25
Hiho,

so, habe nun erfolgreich xine-vdpau und kaffeine 0.88 gebaut. In Ubuntu 9.04 habe ich bereits xine unter /usr/lib liegen, das xine-vdpau liegt nun unter /usr/local/lib.

kaffeine --verbose zeigt mir auch an, dass es das unter /usr/local/lib nutzt. Kann man auch irgendwie testweise erreichen, dass er das "alte" nutzt so als Vergleich? Sieht man bereits bei "normalen" DVB-S weniger Last? Ich habe bisher nur eine Hauppauge DVB-S-Karte, eine S2 will ich mir erst diese Tage zulegen...

Danke, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 10 Juli, 2009, 05:48
nö, mit mpeg2 kann die vdpau wenig anfangen.

Was meinst du mit "alte nutzt"? Die alte kaffeine version?
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 10 Juli, 2009, 07:55
ah, ich dachte, mpeg2 wuerde durch die Grafikkarte auch dekodiert werden.

Ich meine die alte Version der xinelib, die ich noch auf dem Rechner habe, parallel zur xine-vdpau.

Danke, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 10 Juli, 2009, 15:15
achso. Naja zwei xine-lib versionen nebeneinander ist nicht gut. Wenn es sich vermeiden lässt würde ich absolut davon abraten.

Am vernünftigsten wäre es du baust dir ordentliche debian pakete von der xine-lib, damit sie das Paketmanagementtool verwalten kann (so kannst du z.b. deine tests mit der xine version aus den repositories machen, und die alte version dann durch die vdpau variante updaten lassen.

So wäre eigentlich ein sauberer weg.

Teilweises MPEG2 hardware encoding geht schon einige Jahre mit den XVMC video out treibern (schau mal in kaffeine unter Xine engine Parameters) Aber das ist ausschliesslich für sehr alte Maschinen eine option denn ab ~1GHZ wird grundsätzlich der xv vo treiber empfohlen der mit nvidia's & binary treiber die besten ergebnisse erzielen sollte.


Falls du willst kann ich dir ein TS sample eines 720p streams zukommen lassen (ist recht gross ~ 100 MB). Damit kannst auch schon ohne dvb-s2 hardware mal deine software testen
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 10 Juli, 2009, 15:31
ohja, ein Sample waere natuerlich super vor dem Test mit der richtigen (noch nicht vorhandenen) Hardware!

Gruss, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 10 Juli, 2009, 15:43
ok, hast eine private mitteilung  ;)
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 11 Juli, 2009, 23:33
So, das HD-Testvideo wird abgespielt, aber mit sehr hoher Last und Rucklern :-( Wo koennte das Problem liegen? Ich habe die xinelib-vdpau installiert und das kaffeine 0.8.8. Laut kaffeine --verbose nutzt es auch die richtige xinelib... Kaffeine 0.8.8 ist aus einem Beitrag hier im Forum, ich werde nochmal die VBersion aus dem SVN holen, aber afair ist das eine 0.8.7, oder?

Gruss, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 12 Juli, 2009, 21:23
an vieles... chipset, mainboard, ect. Aber bleiben wir estmal bei der software. ist am wahrscheinlichsten ;)

versuche das testvideo mit einem vdpau fähigen mplayer abzuspielen. Wenns da nicht ruckelt liegt sicher an xine. Aber erstmal wäre es gut deinen install soweit in ordnung zu bringen dass du nur eine xine-lib version auf deinem System drauf ist. Denn auch wenn die offizielle xine-lib mit --prefix=/usr gebaut ist und die vdpau version mit --prefix=/usr/local kann es trotzdem probleme geben.  

kaffeine selbst zu kompilieren ist auch eine gute idee ;)

Die allerletzte Version von der qt3 basierten kaffeine Version ist die 0.8.8 (http://hftom.free.fr/kaffeine-0.8.8.tar.bz2) Release von hftom's website und der bugfix patch für eac3 audio (http://www.dvbcube.org/index.php?topic=25951.msg113022#msg113022) von hier.

ebenso einen versuch wert ist es im xorg.conf Composite auszuschalten:

Section "Extensions"
      Option  "Composite"     "Disable"
EndSection

und die Option "TripleBuffer" in der Device section (nach der 'driver nvidia' zeile) bringt mehr memory buffer fürs playback (zwackt dies aber vom 3D speicher ab)

  Option         "TripleBuffer" "True"

ebenso interessant in diesem zusammenhang falls du cpu frequency scaling eingeschaltet hast:
Zitat
AMD Powernow Kernel Module

If you are using the powernow kernel module with an AMD CPU and are having problems playing HD video with VDPAU (stuttering video or audio) then it maybe that your processor is causing a bottleneck. An 8300 chipset should be capable of running the Temporal x2 deinterlacer, if you are getting stuttering then this is likely to be the issue.

   1. Execute the following command as root to find the current clockspeed of your processor "cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq".
   2. If it reports back a value less than 1800000 then you need to set the minimum processor speed.
   3. Add the following command to /etc/rc.d/rc.local (Fedora, maybe different for other distro's) -

   #Set minimum CPU speed to prevent playback issues with VDPAU
   echo "1800000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Ansonsten, wenn du des englischen mächtig bist ist im nvnews forum (in der Linux Section) eine gute Anlaufstelle für solche probleme. Dort lesen auch die wirklichen geeks mit, die dir dann sicher helfen können.
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 13 Juli, 2009, 14:30
Ja, als naechstes kommt ein vdpau-faehiger mplayer dran!

Ich hatte nur die xine-lib daneben installiert, weil Ubuntu alles moegliche an Anwendungen deinstallieren will, wenn ich die "alte" xine-lib von System entfernen will. So muesste ich also erst ein *.deb der vdpau-faehigen Version machen und es installieren.

Kaffeine hatte ich auch selbst kompiliert und kein fertiges Paket genutzt.

Dei Infos zu xorg.conf und Cpu frequency scaling schau ich mir auch noch an!

Besten Dank, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: rikus am 13 Juli, 2009, 23:15
som nachdem mplayer super mit vdpau ging, habe ich nun doch die xine-lib mit allen abh. Programmen deinstalliert und neu aufgesetzt. Dann kaffeine neu kompiliert und auch dies ging super! Lag also doch irgendwie an den 2 parallelen xine's...

Gruss, Rikus
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 15 Oktober, 2009, 11:34
Wie den meisten sicher nicht entgangen ist hat Nvidia neue low budget karten vorgestellt. Darunter fallen die GT 210 und GT220 (http://www.nvidia.com/object/product_geforce_gt_220_us.html). Solche karten werden zwar bez. 3d keine Bäume ausreißen, für einen HTPC sind sie aber dank vdpau (http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/index.html) super geeignet

Einige interessante Fakten : (bezogen auf die GT220, die GT210 hat nur 16 Stream Przessoren, ist also weniger empfehlenswert bez. hdtv)
- unterstützt Hardwarebeschleunigung nach dem PureVideo VP4  Feature Set C (heisst: Komplette Hardwarebeschleunigung für MPEG-1, MPEG-2, MPEG-4, VC-1/WMV9 und H.264 codecs)
- GPU Clock: 635 MHz
- Menory: 1 GB DDR3
- Memory Interface: 128-bit  
- Stream Processors: 48 (wichtig für ordentliches deinterlacing)
- Stromverbrauch: mit angeblichen 58 W  unter Last noch ok.
- Bus Support:   PCI-E 2.0

Also die Karte ist für Linux & HDTV (beschleunigt mittels nvidia binary treiber) wirklich imho eine gute Option  für den Preis (schon gesehen ab 70 Euro) .
 
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: ritschibie am 15 Oktober, 2009, 13:38
Die Karte ist in der Version des Herstellers ZOTAC sogar unter 50€ gelistet ;)
Hier der Test der ZOTAC GTX 220, der für HDTV-Wiedergabe recht günstig ausfällt:
http://www.computerbase.de/artikel/hardware/grafikkarten/2009/test_zotac_geforce_gt_220/17/#abschnitt_vc1h264wiedergabe
Die Karte ist nichts für Zocker und PhysicX Begeisterte, aber in 40 nm Bauweise und angenehm leise!
Meines Wissens ist sie bis jetzt erst gelistet, zum Kaufen habe ich sie noch nicht entdeckt,
wird wohl November werden (ein shop in Österreich will sie erst ab Feb 2010 verkaufen!).
Elitegroup will die GTX220 auch passiv gekühlt anbieten, also wie gemacht für einen HTPC ;).

Mein Favorit ist nach wie vor die GTX260, die aber immer noch über 120 € kostet und in 55 nm
(seit Juli 2009) gefertigt wird.
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 15 Oktober, 2009, 14:14
Danke. Nur auf die für mich wichtigen sachen geht der von dir verlinkte test nur sehr begrenzt ein.  Das wirklich interessante ist ja die VP4  Feature Set C unterstützung, welche die im fazit empfohlene GeForce 9600 GT überhaupt nicht hat, also kann man die schon gar nicht so in einen Topf schmeissen... Ebenso wurden alle test nur für windows durchgeführt. Unter linux nur begrenzt umsetzbar / vergleichbar.

Für Linux hab ich die Erfahrung gemacht dass http://www.phoronix.com/ vernünftige Tests der hardware und Linux treiber machen. Leider haben die aber anscheinend noch keine gt 220 in die Finger bekommen.
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 18 Januar, 2010, 10:20
Die GT 210 / 220 karten besitzen einen integrierten Soundchip um via hdmi kabel die tunes gleich mit dem Tv bild mit zuschicken. Leider gab es bis jetzt keine Unterstützung derselbigen unter Linux (via alsa) bin aber jetzt über eine Ankündigung auf der alsa-devel mailing liste gestoßen dass nvidia Programmierer aktiv daran arbeiten :)

http://mailman.alsa-project.org/pipermail/alsa-devel/2009-December/024229.html

Erste code-schnipsel (http://www.nvnews.net/vbulletin/showthread.php?t=143610) sind auch schon aufgetaucht, die aber noch nicht voll funktionieren, aber bald dürfte die Software funktionsfähig sein.
Titel: Re: Nvidia Beta Treiber mit H264 HW-decoding support!
Beitrag von: mtron am 16 August, 2010, 16:53
Es gibt ja ,wie in einem anderen Thread angesprochen unterschiedliche Generationen von VDPAU fähigen Nvidia Grafikkarten. Je nachdem von welcher Serie eure Karte ist kann sie untershciedlich viel Arbeit bei der Videodekodierung verwenden. Grundsätzlich sollte für gutes deinterlacing die karte mindestens 16 Stream Prozessoren haben und über mindestens 512 MB VRAM verfügen. (1024 sollten z.Z. aber eh standard sein). Die beste Wahl sind momentan Karten der GT-2xx Reihe (210,220,240 ect.) .

Hier eine Übersicht der verschiedenen Generationen von vdpau fähigen Nvidia Karten:

1. Erste Generation

PureVideo HD wurde mit GeForce-7-Serie eingeführt. Dabei konnte die Grafikkarte zum Beispiel die Formate MPEG-2, WMV und H.264 verarbeiten. Beim H.264 konnten die letzten zwei Stufen des Dekodierens übernommen werden. Die ersten beiden Dekoderstufen „Bitstream Processing“ und „Inverse Transform“ übernimmt weiterhin der Hauptprozessor.


2. Zweite Generation

PureVideo HD der zweiten Generation kann Videos in den Formaten MPEG-2, WMV, H.264 und VC-1 verarbeiten und damit den Hauptprozessor beim Abspielen dieser Videoformate entlasten. Der in den Grafikchip integrierte Videoprozessor VP2 kann die letzten drei Decoderstufen der HD-Formate H.264 und VC-1 übernehmen. Bei H.264 übernimmt der ebenfalls in den Grafikchip integrierte Bitstream-Prozessor (BSP) die erste Decoderstufe „Bitstream Processing“, bei VC-1 übernimmt diese Aufgabe weiterhin der Hauptprozessor.

Die AES128 Engine ist ebenfalls in den Grafikchip integriert, welche das Decodieren des AES-Verschlüsselungsprotokolls übernimmt. Dieses Verschlüsselungsprotokoll wird im Kopierschutz AACS vieler kommerzieller HD DVDs und Blu-ray Discs genutzt.


3. Dritte Generation

PureVideo HD der dritten Generation kann weiterhin Videos in den Formaten MPEG-2, WMV, H.264 und VC-1 verarbeiten. Im Gegensatz zur Vorgängergeneration kann nun auch die erste Decoderstufe „Bitstream Processing“ beim VC-1 übernommen werden, so dass auch dieses Format vollständig über den Grafikprozessor abgearbeitet werden kann.

Graphikchips der dritten PureVideo-Generation (G98, MCP77, MCP78, MCP79, MCP7A) haben einen Fehler, der das beschleunigte Decoden von H.264 Videos mit folgenden horizontalen Auflösungen verhindert: 784, 864, 944, 1024, 1808 und 1888 Pixel

Quelle: http://wbreu.htpc-forum.de/vdpaukompendium/vdpauhardwareauswahlallgemein/index.php