x264 & AMD Prozessor

  • Hallo

    ich hab mich jetzt ein paar Tage in die x264er Codierung reingelesen nachdem ich neuerdings einen HTPC mit BluRay Laufwerk habe :)

    Im Prinzip funktioniert auch alles ganz ok, nur eine BluRay VC-1 Codierte Videospur in eine x264er umzuwandeln dauert, naja, ewig!?

    Ich hab jetzt hier im Forum schon Screenshots gehesen wo der Encoder die CPU Features von AMD nutzt zB 3DNow. Wo finde ich denn eine passende Build?

    hier mal ein Beispiel wie es bei mir aussieht:

    D:\BDRips>x264 --tune film --pass 3 --bitrate 10240 --stats h264stats1 --output filmfilm.mkv rip.avs

    avs [info]: 1920x1080 @ 23.98 fps (167415 frames)
    x264 [info]: using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT

    x264 [info]: profile High, level 4.0
    [11.2%] 18670/167415 frames, 4.12 fps, 8888.40 kb/s, eta 10:01:37


    Vielen Dank schon mal für die Auskunft!

    MFG

  • Hi,

    ich habs von da runtergeladen http://x264.nl/ und er macht nur das was da steht :(

    ach und, ja ich mach da den 2ten durchgang aber halt mir --pass 3 weil ich folgendes gelesen hab

    Zitat

    --pass 3 sorgt aber trotzdem dafür, dass die im 1st Pass erstellte Statistikdatei aktualisiert wird

    Wo find ich denn andere Builds? bzw die offiziellen? Wills net selber bauen :)

    MFG

  • x264 detektiert die erweiterten Befehlssätze deiner CPU zur Laufzeit. Es werden also nur die Befehlssätze verwendet, die von deiner CPU tatsächlich unterstützt werden.

    Allerdings sind bei weitem nicht alle erweiterten Befehlssätze, die existieren, auch tatsächlich für die Video-Kodierung sinnvoll bzw. hilfreich!

    Die x264 Entwickler haben natürlich nur für die Befehlssätze entsprechend optimierte Routinen implementiert, die für die ausgeführten Berechnungen wirklich irgendwelche Vorteile bringen.

    Und natürlich werden auch nur diejenigen Befehlssätze zur Laufzeit detektiert, die tatsächlich irgendwo in x264 zum Einsatz kommen können. Das sind derzeit die folgenden:

    Erweiterte Befehlssätze sind kein "magischer" Turbo-Boost, sondern man muss die neuen Befehle im jeweiligen Programm auch sinnvoll einsetzten können!

    Soweit ich weiß, umfasst 3DNow! ausschließlich Fließkomma Operationen. Das mag für 3D Grafik hilfreich sein, ist aber für die Video Codierung leider nicht zu gebrauchen.

    Video Codierung, zumindest nach H.264, verwendet praktisch nur Integer/Ganzzahl Mathematik ;)

  • ok, danke für die ausfürliche CPU info :) ich hab mir mal nen QuadCore bestellt, dann wirds vielleicht nochn tick schneller.

    Und warum ich die stats file aktualisier ... hmm, vielleicht gefällt mir das ergebniss ja net, zu groß, zu klein, zu weich, doch nur 720p statt 1080p etc und dann hab ich ne aktualisierte stats-file um nochmal zu codieren ... hab ich mir gedacht, oder denk ich falsch? Is meine erste BluRay die grad zu 264/MKV wird :)

    das ganze demuxen, subtitle-wandeln, Soundstream rippen und das Muxen im nachhinein is ja einfach ... die Kunst, soweit ich das sehe, is wirklich den Videostream zu optimieren, und das hab ich vor, und wenn ich den Kniff raus hab gehts auch schneller, hoff ich ...

    Gruß

  • Zitat

    ok, danke für die ausfürliche CPU info ich hab mir mal nen QuadCore bestellt, dann wirds vielleicht nochn tick schneller.

    Da x264 Multi-Threading benutzt und zudem sehr gut skaliert, ist mit einem QuadCore die doppelte Geschwindigkeit eines vergleichbaren DualCore zu erwarten. Wenn du dir einen aktuellen Intel CPU (Nehalem Architektur) holst, sind noch mal 40% Speed-up im Vergleich zu einem gleich schnell getakteten Prozessor der vorherigen Generation drin...

  • Zitat

    hmm, vielleicht gefällt mir das ergebniss ja net, zu groß, zu klein, zu weich, doch nur 720p statt 1080p etc und dann hab ich ne aktualisierte stats-file um nochmal zu codieren ... hab ich mir gedacht, oder denk ich falsch? Is meine erste BluRay die grad zu 264/MKV wird


    Hört sich zumindest von meiner Seite aus nicht sinnig an.

    Nebenbei: für Blu-ray Kompatibilität muss man noch auf einiges achten, die Streams die Du mit der oben genannten CommandLine erstellst sind wenn DU Pech hast nicht Blu-ray kompatibel.

    Zitat

    wenn ich den Kniff raus hab gehts auch schneller, hoff ich ...


    x264 --fullhelp gibt eine Auflistung der Parameter und was ihre Defaultwerte sind.

  • Hey

    nur die Quelle is ne BluRay, die von mir gespeicherte file wird ein MKV mit x264 Videostream und AC3 Audiostreams und Subtitles (hab hier nen film, der hat allein 3 German Subtitles, tztztz *g*) ... ich werd mir aber auch den DivXHD264 Encoder/Codec anschauen, vergleichen schadet ja nie :)

    Das nächste mal werd ich dann wohl --pass 2 machen, ich fands auch nur "optional".

    Die CPU ist aktuell eine

    Zitat

    Dual-Core "Regor" • TDP: 45W • Fertigung: 45nm • L2-Cache: 2x 1MB • Hypertransport: 4.0GT/s • Memory Controller: Dual Channel PC3-10667U (DDR3-1333) für 2 Module, Dual Channel PC3-8500U (DDR3-1066), Dual Channel PC2-8500U (DDR2-1066) • Stepping: C2 • MMX, SSE, SSE2, SSE3, SSE4a, Enhanced 3DNow!, NX bit, AMD64, Cool'n'Quiet, AMD-V

    und wird zu einer

    Zitat

    Quad-Core "Propus" • TDP: 45W • Fertigung: 45nm • L2-Cache: 4x 512kB • Hypertransport: 4.0GT/s • Memory Controller: Dual Channel PC3-10667U (DDR3-1333) für 2 Module, Dual Channel PC3-8500U (DDR3-1066), Dual Channel PC2-8500U (DDR2-1066) • Stepping: C2 • MMX, SSE, SSE2, SSE3, SSE4a, Enhanced 3DNow!, NX bit, AMD64, Cool'n'Quiet, AMD-V

    is halt ein AMD System, grad frisch gekauft, besonders wegen strom-sparen,
    ist mein HTPC auf dem das alles passiert, sollte net so viel strom verbraten ... :)

    ach und --fullhelp hab ich mir schon ausgedruckt ;)

    MFG

  • so, wollt mich nur nochmal melden. Hab jetzt den QuadCore eingebaut und schaff bei einem "x264 --tune film --crf 20" grad mal 7,x FPS (bei ca 4000-6000kb/s) ... is auch net viel mehr wie der DualCore (ok, ja man kanns net direkt vergleichen, nicht die gleichen einstllungen) ... schade schade

    ich hab da aber auch nochmal ne Frage, und zwar was der unterschied zwischen den ganzen Builds is, die ich zB auf doom10.org finde? ok, klar, da steht dieser Patch und jener Patch, aber für mich als Causual-Encodierer nicht so ausschlaggebend, oder?

    Gruß

  • so, wollt mich nur nochmal melden. Hab jetzt den QuadCore eingebaut und schaff bei einem "x264 --tune film --crf 20" grad mal 7,x FPS (bei ca 4000-6000kb/s) ... is auch net viel mehr wie der DualCore (ok, ja man kanns net direkt vergleichen, nicht die gleichen einstllungen) ... schade schad

    Ja, du musst schon die selbe Quelle und die selben Einstellungen verwenden, um irgendwelche Vergleiche ziehen zu können...

    ich hab da aber auch nochmal ne Frage, und zwar was der unterschied zwischen den ganzen Builds is, die ich zB auf doom10.org finde? ok, klar, da steht dieser Patch und jener Patch, aber für mich als Causual-Encodierer nicht so ausschlaggebend, oder?

    x264 wird von den Entwicklern als Quellcode bereit gestellt. Es gibt keine "offiziellen" Builds. Man muss sich also vorkompilierte Binaries von irgend jemand holen, sofern man nicht selbst kompilieren möchte/kann. Fertige Builds gibt es für verschiedene Plattformen (Windows, Linux, MacOS, etc) und Architekturen (x86, amd64, etc). Darüber hinaus können verschiedene Compiler eingesetzt werden (GCC, ICL, etc), um die Builds zu erzeugen, und es können dabei auch verschiedene Compiler-Optimierungen eingeschaltet werden (oder eben nicht). Was Patches angeht: Dabei geht es zumeist um neue bzw. experimentelle Features, die es (noch) nicht in das offizielle x264 Repository geschafft haben. Je nach dem, ob man genau dieses Feature unbedingt haben muss, kann es sein, dass du ein gepatchtest Build brauchst oder getrost darauf verzichten kannst. Etwas Experimentierfreude sollte man aber auf jeden Fall mitbringen, wenn man zu Builds mit "inoffiziellen" Patches greift...

  • jo, ok, ich nehm halt mal die Build von x264.nl ... und aktuell rattert er mit schnarchenden 6,85 fps bei 6900 kbit/s vor sich hin *seufz* und das mit nem 4x2,3GHz QuadCore ... muss ich jetzt auch noch übertakten *g*

    aber wie sagt man: in der ruhe liegt die kraft (oder die qualität, in diesem falle)

    MFG

  • jo, ok, ich nehm halt mal die Build von x264.nl ... und aktuell rattert er mit schnarchenden 6,85 fps bei 6900 kbit/s vor sich hin *seufz* und das mit nem 4x2,3GHz QuadCore ... muss ich jetzt auch noch übertakten *g*

    Das Tempo hängt natürlich stark von der Auflösung des Quellmaterials und von den verwendeten Einstellungen ab. Man kann natürlich immer Qualität/Kompression gegen Geschwindigkeit eintauschen, indem man ein "schnelleres" Preset verwendet (z.B. "--preset fast" oder "--preset faster"). Aber 6,85 fps sollte bei SD Material durchaus im grünen Bereich liegen.

  • ne, es is ein 1920x1080 bei 23.976 FPS als input und auch als Output :) ich lade das mit AVISynth via

    DirectShowSource("D:\PFADZURBLURAY\BDMV\STREAM\00000.m2ts",audio=false)

    direkt aus der BluRay-Disk (natürlich auf HDD gerippt) ... sollte so passen, oda?

    Gruß

  • Keine Ahnung welche Taktrate deine vorige CPU hatte, aber die Geschwindigkeitssteigerung hätte man sich sicherlich schon vorher so ungefähr ausrechnen können.
    Wenn man den crf Modus benutzt könnte man doch auch etwas schnellere Einstellungen benutzen, die Qualität sollte darunter doch eigentlich nicht oder kaum leiden, nur die Dateien werden dann etwas größer.

  • Wenn man "schnellere" Presets verwendet, passiert beides: Die Datei wird größer und die Qualität wird schlechter. Jeweils zu einem gewissen Grad.

    Some of them lower the bitrate by improving compression efficiency, while others are more likely to raise the quality a bit. Some do a combination. It depends on the situation.

  • Da Du DirectShowSource verwendest, lässt sich evtl. mit einem anderem Decoder noch etwas Geschwindigkeit herausholen. Im Nachkommabereich ;).

    Beim codieren über DirectShowSource vertraue ich bei AVC Material nur dem CoreAVC Decoder, der arbeitet sehr zuverlässig und wirklich Framegenau, was bei diversen anderen Decodern nicht immer der Fall ist. Auch ist der Output von sehr guter Qualität, besser als von CyberLink & Co.

    Gruß gispos

  • Also ich hatte bis vor paar Tagen noch einen 3Ghz Amd Dualcore - nun den 2.9Ghz Triple (das Ding ohne cache)
    Der X3 Triple ist im x264 bei mir zumindest in vdub (gleiche Settings natürlich) fast genau doppelt so schnell wie mein voriger X2. Also ich war mehr als positiv überrascht. :)
    In anderen Programmen ist der Zuwachs allerdings en ticken weniger gewesen (hängt wohl auch von der jeweiligen Software ab). Bei manchen Settings wie diesem "adaptive B-frame", kriegt man (zumindest bei der vfw) was mehr Speed wenn man auf 4-5Threaths geht.

    Das der Quad bei dir nicht schneller sein soll als dein Dualcore, na ja - also wenn mußte auch schon mit gleichen Einstellungen vergleichen. Btw. wieviel Mhz hatte eigentlich dein X2?

    Einmal editiert, zuletzt von Der_Lurchi (15. Dezember 2009 um 00:39)

  • Beim codieren über DirectShowSource vertraue ich bei AVC Material nur dem CoreAVC Decoder, der arbeitet sehr zuverlässig und wirklich Framegenau, was bei diversen anderen Decodern nicht immer der Fall ist.

    Bei DirectShow kann man sich generell nicht auf Frame-Genauigkeit verlassen, da es eben zur Echtzeit-Wiedergabe und nicht zum Video-Schnitt konzipiert ist! Genau deshalb gibt es ja sowas wie DGIndex für MPEG-2 bzw. DGAVCIndex() für H.264. Allerdings soll DirectShowSource2() zumindest eine "bessere" Genauigkeit liefern, als das "normal" DirectShowSource().

    Auch ist der Output von sehr guter Qualität, besser als von CyberLink & Co.

    Diese Aussage ist nun wirklich Blödsinn. Für die selbe Quell-Datei ist die Ausgabe aller H.264 Decoder immer identisch! Dafür gibt es schließlich Standards. Ein gültiger H.264 Video-Stream kann korrekt interpretiert nur zu genau einer möglichen Ausgabe führen. Wenn die Ausgabe eines H.264 Decoders für einen gültigen Stream vom Referenz-Decoder abweicht, dann ist das schlichtweg ein Bug. Aber so etwas wie unterschiedliche Dekodier-Qualität gibt es nicht. Es gibt nur korrekt oder fehlerhaft. Im übrigen ist CoreAVC derzeit nicht dazu in der Lage, H.264 Streams mit Weighted P-Prediction korrekt zu dekodieren. Wenn man also solche Streams, wie sie z.B. von einem aktuellen x264 erzeugt werden, dekodieren will, dann muss man derzeit zwangsläufig auf einen anderen Decoder zurückgreifen...

Jetzt mitmachen!

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