GPU encoding wird massiv überschätzt. Die existierenden Encoder sind nicht wegen des GPU-Einsatzes so schnell ... sondern hauptsächlich deshalb, weil das Encoding mit "primitiven" Parametern durchgeführt wird. Auf einer aktuellen CPU ist x264 sowohl schneller (minimal), und liefert eine viel, vieeel bessere Qualität. (Wirklich, es ist so. Ich hab's gründlich getestet.)
Decoder auf GPU Basis [...]
[...] Software ist kostenpflichtig, aber der Speedup enorm.
Das
Dekodieren per GPU kann Sinn machen - aber hauptsächlich nur dann, wenn man eine ältere CPU hat, die viel von ihrer verfügbaren Leistung nur für das Dekodieren aufwenden muss. Bei einer "aktuellen" CPU ist der Aufwand für das Dekodieren so gering, dass der Vorteil des Outsourcing ebenfalls nicht durchschlägt.
Fallbeispiel: 1080p Video (mpeg2), resizing auf 1280x720. Vergleich von CPU Dekodierung per Mpeg2source / ffMpegSource zu GPU-Dekodierung per DGDecodeNV. Encodiert wird mit x264 @ default settings. Prozessor i7-860. Grafik GT240 (dekodiert sehr schnell, wg. VP
4 Engine.)
Alle Tools sind x64 Binaries.
Code:
SetMTmode(5,4)
SetMemoryMax(1024)
LoadPlugin("DGDecode_x64.dll")
LoadPlugin("DGDecodeNV_x64.dll")
LoadCPlugin("ffms2_x64.dll")
# mpeg2source("1080p.d2v")
DGsource("1080p.dgi")
# FFVideoSource("1080p.mpg")
setmtmode(2)
bicubicresize(1280,1080)
bicubicresize(1280,720)
return(last)
# x264 encoding mit CPU decoding:
# mpeg2source : 53.35 fps (4 Avisynth threads)
# ffms2 : 66.87 fps (4 Avisynth threads)
# x264 encoding mit GPU decoding:
# DGdecodeNV : 64.16 fps (1 Avisynth thread)
# DGdecodeNV : 54.57 fps (4 Avisynth threads : ist langsamer!! -> DGDecodeNV nix gut für multithreading...)
DGdecodeNV ist zwar schneller als mpeg2source, aber es ist *langsamer* als ffmpegsource. CPU schlägt GPU.
Ausserdem macht DGDecodeNV Probleme, wenn man in Avisynth frame-basiertes MultiThreading einsetzen will. (Slicebasiert geht.)
Ergo: Einsatz der GPU zum Enkodieren oder Dekodieren kann bei älteren CPUs eine Option sein. Bei aktuellen CPUs bringt GPU-Einsatz kaum einen Vorteil ... eher im Gegenteil.