x264 codierung beschleunigen

  • Guten Tag,

    Ich beschäftige mich im Moment damit die Bitraten von HD Aufnahmen zu verringern. Dazu indexiere ich die Ts Files mit dgavcindex a23. Im MeGUI verwende ich das HQ-slowest Profil.
    Wenn ich nun ein TS file umwandle, dass werden im 1. Pass ca. 10 Frames erreicht, im 2. Pass leider nur max. 2 Frames. Kann ich das irgendwie beschleunigen? Ich vermute ich kann die Intensität der Bewegungssuche verringern. Das möchte ich aber ungern, da ich mit Qualitätseinbußen rechne. Genauso gut kann ich warscheinlich ein Resize auf 720 ausführen. Das möchte ich aber auch ungern machen.
    Gibt es weitere Optionen?
    Der Prozessor ist ein AMD Athlon64 X2 5200. 2 GB DRR RAM.

    grüße

    Gucky

  • 1. aktuelle x264 Version nutzen
    2. wenn ich mir das normale HQ-Slowest angucke:

    Zitat

    --pass 2 --bitrate 1000 --stats ".stats" --ref 10 --mixed-refs --no-fast-pskip --bframes 16 --b-pyramid --b-rdo --bime --weightb --direct auto --filter -2,-1 --subme 6 --trellis 2 --analyse p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --progress --no-dct-decimate --no-psnr --no-ssim --output "output" "input"


    Würde ich spontan:
    1. weniger reference Frames benutzen 3 sollte bei HD Material i.d.R. voll reichen.
    2. trellis nicht mit 2 sondern 1 aufrufen (bringt nur seltenst etwas)

    Cu Selr

  • Guten Abend

    Nachdem hier öfter gesagt wurde dass man zum bewerten der videoqualität nicht unbedingt die bitrate nehmen kann sondern eher die quantisierung, wollte ich mal fragen ob ich die quantisierung beim x264 mit der qualitätsstufe beim datenreduzieren von jpg vergleichen kann? die idee kam mir gestern abend.

    grüße

    gucky

  • Vergleichbar ist es -- in Grenzen. Allgemein gilt auch bei H.264/AVC, dass die Quantisierung mit größeren Faktoren eine gröbere Abbildung erzeugt. Nur stehen sich JPEG und MPEG 1/2/4-ASP näher, da die alle mit einer DCT arbeiten, AVC jedoch verwendet (auch) eine andere Transformation der Samples in Frequenzsummen.

  • Die Limitierung der Anzahl von B-Frames und Referenzen dürfte die Geschwindigkeit wohl am deutlichsten beeinflussen.

    Soweit ich weiß, können mehr B-Frames die Enkodierung sogar beschleunigen, da x264 die B-Frames beim Multi-Threading geschickt ausnutzt.
    Generell sollte man deshalb das Maximum von bis zu 16 B-Frames zulassen und so den Enkoder die "optimale" Anzahl von B-Frames entscheiden lassen.

    Die Referenzframes sollte man für "normales" Film-Material auf höchstens 6 setzen. Noch mehr bringt kaum Gewinn und kostet bloß Geschwindigkeit.
    Für Anime und Cartoons können bis zu 16 Referzframes aber wohl durchaus sinnvoll sein...

    Außerdem hat auch die gewählte Methode zur Bewegungserkennung und die Such-Reichweite einen sehr deutlichen Einfluss auf die Enkodiergeschwindigkeit.
    Würde normalerweise nicht über "Uneven Multi-Hexagon" hinausgehen. "Exhaustive" ist seeeehr langsam und "Hadamard" ist sogar noch langsamer...

  • Guten tag,

    ich habe inzwischen mehrere Files mit cq22 kodiert bin etwas erstaunt was dabei rauskam. Einerseits 1920 auflösung andererseits 720.
    ich habe mehrere Samples mit ruhiger Scene und detailreich genommen um für mich mal einen Anhaltspunkt zur QWuantisierung zu ermitteln. Hrausgekommen ist dabei cq=24. Aus 2 Gründen:

    Ich habe den Wunsch 2 90 MinutenFiles auf 1 4 GB DVD zu bekommen. In 1920 er Auflösung. Andererseits das Maximum an Qualität. Das scheint bisher auch gelungen zu sein. Obwohl ich noch am Schwanken bin ob ich nicht dochliber höher gehe. Wenn ich nun ein bestehendes File mit den EInstellungen cq=24 neu kodiere komme ich auf ca. 50% der Speichermenge wie ich es bisher vom HQslowest Profil her kenne.

    Daher nun meine Frage an die Profis hier:
    Welchen Quantisierer nehmt Ihr? Nach welchen gesichtspunkten habt ihr für euch entschieden dass ihr mit einem bestimmte Quantisierer klarkommt? Oder nehmt ihr verschiedene Quantisierer für verschiedene Arten von Material?

    grüße

    Gucky

  • "Das Maximum an Qualität" erreicht man mit verlustfreier Encodierung... ;) -- Dann aber keine sinnvolle Größe. "Das beste unter gewissen Nebenbedingungen" wäre das "Optimum".
    __

    Wer eine bestimmte Zielgröße braucht, braucht eigentlich auch zwei Durchläufe. Auf eine feste Quantisierung zu setzen ist schwierig -- sie garantiert eine überwiegend gleichmäßige Qualität über einen Film, aber nicht zwangsläufig eine gleich gute zwischen verschiedenen Filmen.

    Ich glaube, bei größeren Bildflächen kann man sich etwas gröbere Quantisierungen leisten, da die "Datenmenge" im Bild bereits nahe an die Fähigkeit der Detailerkennung kommt, und dann schon wieder das Gehirn sowieso mehr ignoriert als man sich vorstellen mag.

  • gucky: Ich würde dir dringend raten, den CRF Modus anstelle des CQ Modus zu benutzen!

    CRF arbeitet mit einem konstanten "Ratefactor", was zu variablen Quantizern führt.
    Das ganze ist so austariert, dass du im Durchschnitt ungefähr auf den angegeben Quantizer Wert bekommst.
    CQ dagegen arbeitet quasi "blind" mit einem konstanten Quantizer, was der Wahrnehmung nicht unbedingt gerecht wird.
    Im Vergleich zu CQ liefert CRF annähernd die gleiche subjektive Qualität, kann aber einiges an Bitrate einsparen.
    Deshalb: Lieber CRF auswählen und den Quantizer gegebenen Falls um 1-2 Punkte runtersetzen.

    BTW: Ich benutzte üblicherweise CRF mit 22 für meine TV Captures...

  • LoRd_MuldeR

    Ich habe deinen Rat befolgt mit crf.
    Ich verwende im Moment die profile HQ-Slowest und DXVA-HD-HQ mit crf=24.
    Kann ich die Codierung noch irgendwie beschleunigen, sprich im moment habe ich keine 4 Frames/sec.

    grüße

    Gucky

  • Wie sieht es denn mit Geschwindigkeit und Qualitäts empfinden bei folgenden Einstellungen aus?

    Code
    --crf 24 --keyint 500 --deadzone-inter 11 --deadzone-intra 11 --bframes 16 --b-pyramid --bime --weightb --direct auto --filter -1,0 --no-cabac --subme 1 --no-chroma-me --analyse none --qpmin 1 --qpstep 16 --me dia --threads auto --thread-input --progress --no-psnr --no-ssim --output "output" "in
  • Guten Tag,

    Selur: Ich was ich bisher gesehen habe, da finde ich die Qualität schon ganz gut. Bei der Zeile kommt für mich nun die Frage auf, was die Zeile eigentlich richtig bewirkt. Was ich weiter festgestellt habe ist dass es logischereise einen unterschied macht mit welcher Priotrität xs264 läuft. Bisher läuft der x264 mit megui bei mir auf idle. Wenn ich nun deine Zeile per batch starte und dann manuell die Taskpriorität wieder auf idle ändere macht sich das schon bemerkbar.
    Wie sieht es aber mit den Optionen bei der Kompression des x264 im Bezug auf die Geschwindigkeit aus. Kennst du da Links zum nachlesen?

    grüße

    Gucky

  • Zitat

    Bei der Zeile kommt für mich nun die Frage auf, was die Zeile eigentlich richtig bewirkt.


    Sie ist vor allem flott und versucht B-Frames ordentlich zu encoden.

    Zitat

    Was ich weiter festgestellt habe ist dass es logischereise einen unterschied macht mit welcher Priotrität xs264 läuft.


    Zumindest wenn nebenbei noch andere Tools laufen,...

    Zitat

    Wie sieht es aber mit den Optionen bei der Kompression des x264 im Bezug auf die Geschwindigkeit aus. Kennst du da Links zum nachlesen?


    http://www.yuvsoft.com/pdf/x264_comparison.html
    me, subme, ref, cabac(+Datenrate), analyse, trellis sollten die wesentlichen Punkte sein durch die die Geschwindigkeit bestimmt wird

  • Guten Morgen,

    Selur: Danke erstmal für den Link. Im Moment teste ich die Optione fleissig aus. habe aber schonwieder ne Frage:

    Wenn ich mich z.b. entscheide dass ich keine Trellies brauche, heisst das dann automatisch, dass ich dann auch keine z.b. reference Frames und mixed-references brauche? Ich frage da die Optionen ja zumindest Optisch im Dialog der Profiles von MeGUI gruppiert sind.

    grüße

    Gucky

  • Das Trellis-Verfahren sucht nach optimalen Quantisierungsfaktoren, aber nicht ausschließlich in B-Frames, eher in den anderen Typen (evtl. muss man extra aktivieren, ob Trellis auch auf B-Frames wirken soll). Referenz-Frames dagegen sind besonders bei B-Frames wichtig, spart der Codec doch durch Referenzierung des Inhaltes anderer Frames besonders effizient Bitrate. Die Quantisierung dagegen spielt nur eine Rolle für übrig gebliebene Differenzen zwischen aktuellem und Referenz-Inhalt (Interframe-Quantisierung), oder wenn keine Referenz gefunden wurde und der Bildinhalt direkt encodiert werden muss (Intraframe-Quantisierung). Referenzen und Quantisierung ergänzen sich also.

  • Vorteil an Trellis: es optimiert die Schärfe von Kanten
    Nachteil an Trellis: es entfernt dafür andere feine Details
    => bei Filmen mit feinem Filmrauschen, was man erhalten will würde ich von Trellis abraten.

    Für den Rest:
    Lies mal im "MeGui Essentials" oder im "Wissenswertes rund um x264" oder im "man x264 " (alle leicht per Google auffindbar) was die einzelnen Features machen.
    Falls Du das MeGui Essentials lesen solltest, lies dort am Besten auch als erstes auch den Anhang in dem grob erklärt wird wie MPEG Kompression an sich funktioniert.

    Cu Selur

  • Guten Tag,

    Im Moment versuche ich mich mit folgenden Optionen:
    --crf 24.0 --level 4.1 --ref 4 --mixed-refs --bframes 3 --b-pyramid --b-rdo -bime --weightb --direct auto --filter -2,-1 --subme 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --threads auto --thread-input --progress -no-psnr --no-ssim --output

    Ist also im Grunde nach meiner Ansicht nur ein etwas abgewandeltes DXVA Profil.
    Damit komme ich im Moment auf 5-7 FPS. Damit bedeutet dass ich ca. 8 Std für 90 Minuten brauche. Nach dem Link von Selur habe ich dazu entschlossen es mal ohne Trellis zu versuchen.

    Gibt es dazu noch Ratschläge eurerseits?

    grüße

    Gucky

  • Guten Tag,

    selur: sicher habe ich die Einstellungen probiert. ich habe gestaunt was damit rauszuholen ist. Zu dem Augenblick habe ich deine Links noch nicht gehabt -> Kompressionsverfahren -> Wirksamkeit/ Schnelligkeit.
    Nachzuforschen wo nun der Unterschied zwischen deinem Posting und meinen aktuellen Einstellungen ist, da bin ich ja noch dabei. Da deine Einstellungen im Vergleich zu meinen um einiges schneller ist, frage ich mich im Moment warum. Da bin ich im Moment dabei :)
    Ein schnellerer Prozessor kommt im Moment für mich leider nicht Frage.

    grüße

    Gucky

Jetzt mitmachen!

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