Der Artikel, den Sie verlinkt haben, ist nicht sehr gut.
Normalerweise konvertieren Single-Pass-Bitratencodierungen Ihre Bitrate in einen RF-Wert mit einem maximalen Bitratenlimit und nehmen ihn von dort auf.
Die einmalige ABR-Ratensteuerung von x264 ist nicht als CRF + -Limit implementiert. Er hat Recht, dass 2pass bei weitem der beste Weg ist, eine Ziel-Bitrate zu erreichen.
Und er merkt anscheinend nicht, dass er x264 mit Threads = 3 oder so beginnen könnte, um etwas CPU-Zeit für andere Aufgaben frei zu lassen. Oder setzen Sie die Priorität von x264 auf sehr niedrig, damit nur die CPU-Zeit zur Verfügung steht, die keine andere Aufgabe benötigt.
Er mischt auch Threads = 1 mit CUDA oder so. Kein Wunder, dass Sie Fragen haben, denn dieser Artikel hat eine SCHRECKLICHE Erklärung. Der gesamte Artikel besteht im Wesentlichen aus: Verwenden Sie x264 --preset veryslow --tune film --crf 26 in.m2ts --out out.mkv
oder verwenden Sie möglicherweise eine Lichtfilterung mit einem AviSynth-Eingabeskript. Er empfiehlt tatsächlich "Placebo". Das ist komisch. Ich habe noch nie eine mit Placebo verschlüsselte Raubkopie gesehen. (Sie können von me=esa
oder me=tesa
anstelle me=umh
aller guten Qualitätsvoreinstellungen bis zu unterscheiden veryslow
.
Er erwähnt auch nicht die Verwendung von 10-Bit-Farbtiefe. Das Kodieren und Dekodieren ist langsamer, aber selbst nach der Rückkonvertierung auf 8-Bit erhalten Sie ein besseres 8-Bit-SSIM. Offenbar hilft es, wenn Bewegungsvektoren präziser sind. Es hilft auch, nicht auf genau einen 8-Bit-Wert abrunden zu müssen. Sie können sich 8-Bit pro Komponente als Speed-Hack vorstellen. Das Quantisieren im Frequenzbereich und das anschließende Komprimieren mit CABAC bedeutet, dass höhere Bittiefenkoeffizienten nicht mehr Platz benötigen.
(Übrigens profitiert h.265 weniger von 10-Bit-Codierungen für 8-Bit-Video, da es bereits eine höhere Präzision für Bewegungsvektoren aufweist. Wenn die Verwendung von 10-Bit x265 für 8-Bit-Videoeingänge einen Vorteil bietet, ist sie kleiner als mit x264. Es ist also weniger wahrscheinlich, dass sich die Geschwindigkeitsstrafe lohnt.)
So beantworten Sie Ihre eigentliche Frage:
edit: doom9 ist jetzt wieder online, also räume ich den link auf. Sehen Sie sich an, wer was gesagt hat.
http://forum.doom9.org/showthread.php?p=1135399#post1135399
google speichert nur die blöde druckversion zwischen, die das zitat nicht richtig anzeigt. Ich bin nicht ganz sicher, welche Teile dieser Nachrichten Zitate sind und welche der Person selbst zugeschrieben werden.
Stark unregelmäßige Verzweigungsmuster (Sprungmodi) und Bit-Manipulation (Quantisierung / Entropie-Codierung) passen nicht zu aktuellen GPUs. IMO ist die einzige wirklich gute Anwendung im Moment die vollständige Suche nach ME-Algorithmen, obwohl die beschleunigte vollständige Suche immer noch langsam ist, selbst wenn sie schneller als die CPU ist.
- MfA
Eigentlich kann im Grunde alles vernünftigerweise auf der GPU erledigt werden, mit Ausnahme von CABAC (was getan werden könnte, es könnte einfach nicht parallelisiert werden).
x264 CUDA implementiert zunächst einen Fullpel- und einen Subpel-ME-Algorithmus. später könnten wir so etwas wie RDO mit einer Bit-Cost-Approximation anstelle von CABAC machen.
Weil es alles mit Gleitkommazahlen mit einer Genauigkeit zu tun hat
- MfA
Falsch, CUDA unterstützt ganzzahlige Mathematik.
- Dunkler Shikari
Dark Shikari ist der x264-Betreuer und Entwickler der meisten Funktionen seit etwa 2007.
AFAIK, dieses CUDA-Projekt ist nicht aufgegangen. Es gibt Unterstützung für die Verwendung von OpenCL, um einige Arbeiten aus dem Lookahead-Thread zu entfernen (schnelle I / P / B-Entscheidung, keine hochqualitative endgültige Kodierung des Frames).
Ich verstehe, dass der Suchraum für die Videokodierung so groß ist, dass intelligente Heuristiken für die vorzeitige Beendigung von Suchpfaden auf CPUs die Brute-Force-GPUs übertreffen, zumindest für eine qualitativ hochwertige Kodierung. Es ist nur im Vergleich zu dem, -preset ultrafast
wo Sie vernünftigerweise HW-Codierung über x264 wählen könnten, esp. Wenn Sie eine langsame CPU haben (wie ein Laptop mit Dual Core und ohne Hyperthreading). Auf einer schnellen CPU (i7 Quad Core mit Hyperthreading) wird x264 superfast
wahrscheinlich genauso schnell sein und besser aussehen (bei gleicher Bitrate).
Wenn Sie eine Codierung erstellen, bei der es auf Ratenverzerrung (Qualität pro Dateigröße) ankommt, sollten Sie x264 -preset medium
oder langsamer verwenden. Wenn Sie etwas archivieren, sparen Sie durch etwas mehr CPU-Zeit Byte, solange Sie diese Datei behalten.
Nebenbei bemerkt, wenn Sie jemals Nachrichten von Toten in einem Videoforum sehen, wird dies nicht hilfreich sein. Er hat sich bei den meisten Dingen geirrt, über die er in jedem Thread gesprochen hat, den ich je gesehen habe. Seine Posts tauchten in ein paar Threads auf, die ich über die x264-GPU-Codierung gegoogelt habe. Anscheinend versteht er nicht, warum es nicht einfach ist, und hat einige Male geschrieben, um den x264-Entwicklern zu sagen, warum sie dumm sind ...
-c:v libx264 -preset slower
(was nicht so langsam ist, wie in Echtzeit für 1920 x 1080p24 auf einem Skylake i7-6700k.)