Graka zum Encoden mit x264 bzw. Staxrip

  • hi

    hab hie nen Home-Server mit meinen Aufgezeichneten TV-Mitschnitten und den moechte ich nun auch zum Encoden (X264 / Staxrip) einspannen, da die CPU AMD 4890 nicht gerade zum Encoden gemacht ist wollte ich eine Graka dafuer einbauen, welche bezahlbare so um die 100 Euro ist denn gut dafuer bzw. sollte die im Idle 2D Betrieb auch nicht eine Heizung sein

    Danke schonmal

    Gruss

  • Alternative: GeForce GT240. Zum Spielen eher schwachbrüstig, aber ansonsten ein wirklich gutes Leistungsspektrum: Idle 7 Watt, Vollast 70 Watt (Nvidea Angaben), gibt's auch mit passiver Kühlung (z.B. von Zotac).
    Betreffs DGDecNV - im zugehörigen Benchmark-Thread hat sich die GT240 (dank VideoEngine 4.1) als eine der schnellsten Karten überhaupt herausgestellt, mal abgesehen von den neuen Fermi-Monstern.

    Hab' so eine bei mir drin (die passive von Zotac), und bin sehr zufrieden mit der 80€-Investition. Derzeitige Temperatur: GPU 36°C, bei Zimmertemperatur 25°C und normalem Desktopbetrieb.

  • Ich dachte die Geschwindigkeit beim encodieren wird von der Anzahl der Stream-Prozessoren oder auch CUDA-Cores genannt bestimmt.
    Demnach müßte eine für aktuelle aufwendige Spiele geeignete Graka auch für Cuda besser geeignet sein.
    Hat schonmal jemand ein Quad-SLI System getestet ;) :D

    Meine 8800GT war bei meinen schnelltest im wesentlichen nicht schneller als mein Quad-Core mit 3GHz die Qualität war auch etwas schlechter.
    Die Programme wurden sicherlich noch etwas verbessert und wenn man nur eine Langsame CPU hat kann es sich sicherlich lohnen die GPU zu benutzen.
    Allerdings würde ich von den in billigen Rechnern verbauten Grafikkarten keine Rechenwunder erwarten.

    Nachdem was ich bei der Schnellsuche gefunden habe hat die 8800GT 112 Stream-Prozessoren und die GT 240, 96.
    Kommt vermutlich auch auf die Taktraten und den Speicherdurchsatz an, aber ein Renner ist die GT 240 vermutlich nicht.
    Eine GTX 460 hat z.B. 336 Stream-Prozessoren.

    Bei DGDecNV würden mich die guten Resultate der GT 240 nicht wundern zum Decodieren wird sicherlich auch eine kleinere karte reichen.

  • http://forum.doom9.org/showthread.php?t=155911

    Da siehst das es kaum einen Unterschied gibt zwischen den grossen GTX und den GT240 .. komm bei den Benches nur um vllt- 1-5fps über denen der GT240 .. und ich hab ne GTX480..



    Das ist auch wenig verwunderlich, da beim Dekodieren nicht die eigentliche GPU zum Einsatz kommt, sondern ein dedizierter Decoder-Chip.

    Und soweit ich weiß, ist das ist bei der GeForce 400er Serie immer noch der VP4 Chip, der teilweise schon bei den GeForce 200er Karten verbaut wurde...

  • Gestern habe ich mir die GTX 460 gekauft und spaßeshalber mit MediaCoder und Cuda getestet.

    Das Video hatte eine Auflösung von 720x576 16:9, in MediaCoder hatte ich kaum Einstellungen geändert Modus > VBR und Profil > High.

    CPU C2Q Q6600 @3Ghz
    GTX 460 mit Cuda ca 210 fps und mit x264 58 fps.
    Mit meiner 8800GT waren es glaube ich ungefähr 120 fps.

    Mit meinem VDR auf dem ich auch Windows starten kann, CPU Athlon II X2 235e und 9300 GPU on Board.

    Mit Cuda 18 fps ? :)
    und mit x264 23 fps

    Über 200 fps bei SD material, die CPU Auslastung lag übrigens bei ungefähr 90% also einfach eine langsame CPU benutzen und der GPU die Arbeit überlassen wird nichts bringen.

    Obwohl die GTX 460 mit Standardkühler schon recht leise ist hat mich das Geräusch des Lüfters doch tierisch genervt.
    In einem Leisen Rechner ist das immernoch zu laut, also habe ich die Plastikabdeckung mit Lüfter entfernt und einen leisen 120er Papst @5V mit Schnellbinder am originalen Kühler befestigt, die Kühlleistung ist beim Zocken besser als mit dem Originalen Lüfter.
    Übrigens um die Plastikabdeckung + Lüfter zu entfernen muß man die Schrauben an der Unterseite Lösen und den kompletten Kühler von der GPU entfernen.

  • hi MegaDeath,

    deine Test sagen ja aus das beim encodieren mit dem Media Encoder doch auf die Graka zugegriffen wird, weil sich ja beim Wechsel der Graka die Frames ändern, hast du beim Media Encoder auch Ausgabe h264? mich wundert da ja x264 so langsam ist
    wie schaut es denn mit der Unterstützung von "Spur Engines" aus wie es Tmpgenc hat?

    gruss

  • Eine On-Board-Lösung wie die GeForce 9300 ist ganz gehörig langsamer als jede PCIe-Steck-Grafikkarte.

    9300 mGPU: 16 Unified Shaders; Core/Memory: 450/400-667 MHz (DDR2-DDR3); Bus: 2x 64 bit
    8800 GT: 112 Unified Shaders; Core/Memory: 600/900 MHz; Bus: 256 bit
    460 GTX: 336 Unified Shaders; Core/Memory: 675/900 MHz; Bus: 192/256 bit (768/1024 MB)

    TechARP Desktop Comparison Guide - Nvidia Full list

    Die Anzahl der CUDA-Kerne wird hier auch wichtig sein, aber ich weiß nicht, ob die in der Tabelle auch abzulesen sind.

  • Hallo Ligh,

    aber doch nur fuer decodierung oder? oder nutzt MediaCoder die GraKa zum kodieren -- kann mir die auflistung der Frames von MegaDeath nicht ganz richtig einschaetzen das x264 soo langsam ist bzw. macht MediaCoder vielleicht ja nur Divx?? er hat ja auch einen Unterschied wenn er die Graka gewechselt hat oder ist das Encodieren schneller gewesen weil der Decode der Daten durch wechsel der Graka schneller war? oder stehe ich da irgendwie auf der Leitung??

    Gruss

  • Dass x264 langsam ist, kann ich gut verstehen - insbesondere falls man eine CPU mit nur einem Kern hat.

    Allerdings kann auch ein CUDA-Encoder (z.B. Badaboom) auf einer schwachen GPU sehr viel langsamer sein als auf einer ordentlich ausgestatteten GPU.

    Ich weiß nicht genau, was MegaDeath "zum Encodieren mit CUDA anstatt x264" benutzt hat. Aber 210 fps beim Encodieren kriegt man mit x264 wohl kaum hin, selbst mit CUDA-Decoder. Oder?

    Und den MediaCoder hab ich schon lange nicht mehr benutzt. Hat der etwa mittlerweile einen eignen CUDA-Encoder für H.264?

  • MediaCoder nutzt wie Badaboom die NVIDIA Bibliotheken mit der aktuell leider kein 2pass sondern nur cq, cbr, vbr und restricted vbr möglich sind, man kann aber (laut NVIDIA Encoder API) entscheiden ob alles von der GPU oder nur die MotionEstimation von der GPU gemacht werden soll.

    zum Speed von x264 beim Reencoden von Elephants Dream:


    Erstellt mit meinem (nicht übertakteten) i7 875k. Mencoder ist vermutlich auch nicht so flott wie ein CUDA basierter Dekoder, wobei es auch interessant wäre zu wissen ob das Decodieren per CUDA über den gleichen Chip gehen würde und in wieweit dies das Encoding per x264 oder NVIDA beschleunigen oder bremsen würde,...

    Cu Selur

  • Und dazu noch die schrumpfige Auflösung :)

    _WoRm_
    In MediaCoder unter Video Format > H.264 und als Encoder > CUDA Encoder auswählen.
    Allerdings laßt die Qualität je nach Video bisweilen noch zu wünschen übrig.

    LigH
    Das die GeForce 9300 langsam ist hatte ich mir man glaubt es kaum irgendwie schon gedacht, aber einige fps mehr hätte ich schon vermutet :)

  • Nun ja ... CUDA kann auch keine Wunder bewirken. Es ist insbesondere die hohe Parallelisierung, die aber eben von der Anzahl der Rechenkerne sehr stark abhängt.

    Ich erinnere mich noch gut, was man damals dem Cell-Prozessor der PS3 alles nachgesagt hat ... und? Heute ist fast jeder aktuelle Dual-Core schneller.

  • So, hab mir von einem befreundeten NVIDA Entwickler mal die Libaries zum Testen organisiert, ne CommandLine Anwendung drumherum geschrieben und getestet:
    mit GPU Offload: full

    mit GPU Offload: partial

    Da x264 ja auch kein CABAC nutzt hab ich das (und sps_pps) nun auch deaktiviert:
    GPU offload: full

    GPU offload: partial


    -> ändert auch nicht wirklich viel

    GPU max: ca. 570fps
    x264 max: ca. 600fps

    => zumindest mit meiner Ausstattung (i7 875k, 8GB RAM, Windows 7 64bit pro, NVIDIA GTX 470) lohnt sich das Encoden per GPU nur bedingt

    UPDATE: HMM,.. eventuell mach ich hier noch irgendwas falsch, denn bei mir scheint der CUDA Encoder immer doppelt so viele Frames auszuwerfen wie ich einwerfe -> werde die Tage mal gucken ob
    a. das Einkonfigurationsfehler meinerseits ist
    oder
    b. mein Framecounter den Stream falsch analysiert
    oder
    c. das normal ist :)
    Falls a. das Problem ist, wird er vielleicht doch noch flotter. ;)
    -> Anzahl der Frames stimmt, liegt an meinem Framecounter (zähle jedes Slice als ein Frame ;)) geht aber noch flotter, wenn ich deblocking deaktiviere und die Anzahl der Slices auf 4 erhöhe. :)

    Code
    mencoder -dvd-device "D:\ElephantsDream\VIDEO_TS" dvd://1 -ovc raw -noskip -vc mpeg12 -vf scale,format=i420 -forcedsubsonly -noautosub -nosound -mc 0 -lavdopts threads=8 -really-quiet -fps 25 -aspect 1.7775:1 -of rawvideo -o - | cuda --input - --resolution 720x576 --output test.264 --cavlc true --deblock false --slices 4 --sps_pps false

    GPU offload: full

    GPU offload: partial


    (Anmerkung hab vergessen bitrate auf 4500kBit/s zu setzen, gerade aber noch mal getestet, da CAVLC verwendet wird macht es nichts aus :))

    -> wirklich weit sind sie jetzt ja nicht mehr auseinander ;)

    Cu Selur

  • Die Resultate lassen sich aber nur schwer mit denen von MediaCoder vergleichen, teste doch mal mit einigen Minuten eines actionreichen Videos mit MediaCoder.
    Mich würde mal der ungefähre Leistungsunterschied zu meiner Hardware interessieren.
    Ohne die Einstellungen in MediaCoder zu ändern würde ich bei x264 ungefähr mit 58,5-59 fps rechnen :D

    Übrigens bei MediaCoder + CUDA und VBR hat die Einstellung am Schieberegler keinerlei Auswirkungen an der Qualität.
    Soweit ich mich erinnere war das vor ewigen Zeiten als ich das mit der 8800GT testete auch schon so.
    Kein wunder das die Qualität dann so beschissen ist, für brauchbare Qualität bleibt dann eigentlich nur ABR.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!