Hardware Decoder bzw Resizer

  • Hallo

    Ich habe mal ne Frage. Ich nutze ffms2 um x264 MKV zu bearbeiten.

    Nun frage ich mich, ob es nicht mittlerweile auch Hardware Decoder gibt?

    Also für Cuda oder Intel Quick Sync

    Es gibt zwar DGDecNV aber da konnte ich keine Wirkung feststellen. Also im Positiven sinne gegen ffms2.

    Eine weitere frage betrifft das Resizen.
    Gibt es einen Hardware Resizer den man mit Avisyth einsetzen kann?

    Irgendwie Scheit es mir bei der Entwicklung von Hardware basierenden Sachen nicht vorran zu gehen?

    Es würde sich doch gerade anbieten das Resizen zb der GPU zu überlassen?

    Es geht ums Runterrechnen der Auflösung. Da würde die Quali nicht so ins Gewicht fallen.

  • Nur weil ein hardwareunterstützter Decoder den Decoderchip auf der Grafikkarte benutzt, bedeutet das noch lange nicht, dass er dadurch auch schneller als ein Software-Decoder ist, der ordentliche Unterstützung für Multithreading hat und die Vorteile von Mehrkernprozessoren, vielleicht sogar mit HyperThreading, stabil nutzen kann (wie LWLibavVideoSource als Alternative zu FFmpegSource2). Im Gegenteil, gerade die früheren PureVideo-Decoderchips (VP2, VP3) sind begrenzt auf Frameraten, die zum Anschauen genügen.

    Des Weiteren ist die Nutzung von Hardware-Unterstützung oft mit der Einschränkung der Auswahl verfügbarer Methoden verbunden. Gerade was die Skalierung angeht: Selbst wenn ein GPU-Decoder gleich die Bildfläche mit skalieren würde, könnte er kaum die Vielfalt an Skalierungsfunktionen (Bicubic mit Parametern, Lanczos mit n Taps, Spline mit 2..4 Taps, Gauss, Blackmann) bieten, die AviSynth 2.6 mitbringt.

  • Nun frage ich mich, ob es nicht mittlerweile auch Hardware Decoder gibt?

    Also für Cuda oder Intel Quick Sync

    Es gibt zwar DGDecNV aber da konnte ich keine Wirkung feststellen. Also im Positiven sinne gegen ffms2.


    Das liegt aber schlicht und einfach nicht an DGDecNV - das kann die decodierten Frames auch nur so schnell liefern, wie die Decoder-Einheit der Grafikkarte es zulässt. Du hattest das Thema ja selbst schonmal vor einigen Jahren hier angesprochen:

    http://forum.gleitz.info/showthread.php…Joke-oder-nicht

    Ähnlich Diskussionen:

    http://forum.gleitz.info/showthread.php…nsinnig-langsam
    http://forum.gleitz.info/showthread.php…2-beschleunigen

    Für QuickSync ist mir keine unmittelbare Lösung bekannt. Das einzige, was mir spontan dazu einfällt: eventuell lässt sich per DirectShowSource ein Decoder mit QuickSync-Unterstützung (z.B. der LAV-Videodecoder) verwenden.


    Eine weitere frage betrifft das Resizen.
    Gibt es einen Hardware Resizer den man mit Avisyth einsetzen kann?


    Im erstgenannten Thread hat 'scharfis_brain' schon darauf hingewiesen, dass man mit DGDecNV den Deinterlacer und Resizer der Grafikkarte nehmen kann.

    Ansonsten wüsste ich nur von den uralten AviSynth-Plugins GPU bzw. _GPU25:

    http://www.avisynth.info/?GPU%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3


    Es würde sich doch gerade anbieten das Resizen zb der GPU zu überlassen?


    Warum? Gerade die simplen Resizing-Algorithmen sind alles andere als hungrig nach massiver Rechenleistung.

    Who is General Failure and why is he reading my hard drive?

    He was trying to get in touch with Private Data but if it involves a Major Disaster I understand that the fault lies with General Protection.

    Furthermore, if you cannot reboot it may be because of a corrupt Colonel.

  • P.S.:

    Einziger Vorteil der Hardware-Lösung ist derzeit, dass die Decoderchips bisher oft noch die umfassendere Funktionalität bieten, insbesondere beim Decodieren von Interlaced-Video in der einen oder anderen Variante.

    Noch. Die libav-Entwickler vervollständigen ihre Software auch weiterhin.
    __

    @ Goldi: Encodieren vs. Decodieren.

  • Nebenbei, hat eigentlich mal jemand Avi Shader mit aktullen Grafikkarten verwendet?
    Soweit ich mich entsinne konnte man damit auch unterschiedliche Resizer durch Shader ersetzen,... (aber schon ewigher, dass ich mir das angeguckt habe und ich wüsste auch keinen aktuellen Downloadlink,..)

    Cu Selur

  • Das liegt aber schlicht und einfach nicht an DGDecNV - das kann die decodierten Frames auch nur so schnell liefern, wie die Decoder-Einheit der Grafikkarte es zulässt.

    Und umgekehrt: es muß auch auf den Encoder warten. Häufig wird der Großteil der CPU eh vom Encoder genutzt, d.h. durch Beschleunigen des Decodings bzw. verlagern der Decodierung auf die Grafikkarte läßt sich in vielen Fällen entsprechend nur wenig Zeit herausholen.

    DGDecNV kann übrigens auch das Deinterlacing und Resizing in Hardware übernehmen, ist dabei allerdings auf die Methoden der Karte/des Treiber festgelegt.

    Für QuickSync ist mir keine unmittelbare Lösung bekannt. Das einzige, was mir spontan dazu einfällt: eventuell lässt sich per DirectShowSource ein Decoder mit QuickSync-Unterstützung (z.B. der LAV-Videodecoder) verwenden.

    Ja, das sollte gehen. Alle LAV-Decoder außer DXVA2 native lassen sich so einbinden, allerdings mit den üblichen Problem von DirectShowSource().

    Hast ansonsten aber Recht: das Thema wurde hier schon zur Genüge durchgekaut.

  • Zitat

    DGDecNV kann übrigens auch das Deinterlacing und Resizing in Hardware übernehmen, ist dabei allerdings auf die Methoden der Karte/des Treiber festgelegt.

    Wie willst Du mit DGDecNV Resizen?

    Finde dazu in der Anleitung nix

    Edit: Hinfällig. Habe die Infos gefunden. :)

    Einmal editiert, zuletzt von trecordings (3. Oktober 2013 um 17:52)

  • Zitat


    [LIST=|INDENT=1]resize_w, resize_h: integer (default: 0)Use the GPU to resize the video. The resizing is applied after deinterlacing.
    If either resize_w or resize_h is 0, no resizing is performed.
    If you need to crop before resizing, use the cropping filter in DGIndexNV, or the crop_t/b/l/r parameters described above.
    [/LIST]


    dgsource("source.dgi", resize_w=720, resize_h=576)

  • Kleiner Nachtrag.

    Das bringt alles nur in der Theorie was.
    Per AVSMeter kann man den Effekt von DGDecNV zwar sehen. Bringt eine Verdoppelung des Speeds vom Script. Der Limitierende Faktor ist aber immer die CPU beim Enkodieren.

    Man braucht da dann echt eine sehr Dicke CPU um das zu nutzen.

Jetzt mitmachen!

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