x264 settings optimieren

  • Zitat

    Das Problem ist, daß ich auch erstmal Zeit Y in verschiedene Tests investieren muß. Ob da am Ende noch eine Zeitersparnis bleibt?


    Wenn man viel encoded schon, Grundsettings macht man ja idr. nur einmal und je öfter man mit den Settings arbeitet - je eher wird man nachher schon rein intuitiv (auch ohne tieferes Fachwissen) in der Lage sein, "am richtigen Wert feinzujustieren". Custom Einstellungen lassen sich ja (zumindest im vfw/vdub) abspeichern und man braucht dann halt später auch nur noch das gewünschte/fertige Profil -jenach Ausgangsmaterial/qualität- laden.


    Zitat

    Auch wenn man für ABR bei doom9 wohl den Kopf abgeschlagen kommt, stimme ich Dir zu:Wobei anzumerken ist, daß 2pass bei gleicher Bitrate praktisch identisch mit crf ist (Ich meine Dark_Shikari sprach sogar von einem minimalem Vorteil für crf in seinen Tests).


    Ja, ich denke das bei manchen u.u. das Theoriedenken vor dem Praxisnutzen gestellt wird und daher auf div. oft gepocht wird. Ich hatte zum Vergleich 2pass (3300kb/s) und CRF 20 (was in ca. ~3000kb/s resultierte) encoded. Und wenn man x-Szenen vergleicht, dann ist es schon so das durch 2pass div. FeinDetails verloren gehen im direkten Verglich zu crf. (das mag ev. beim gucken nicht auffallen, an Screenie´s sieht man es aber, zumindest war es so bei og. Bitraten)
    Von der Filegröße mal abgesehen, hat man daher auch nicht soviel davon, was den zeitlichen Aufwand jetzt unbedingt rechtfertigen würde.

  • Wenn man viel encoded schon, Grundsettings macht man ja idr. nur einmal und je öfter man mit den Settings arbeitet - je eher wird man nachher schon rein intuitiv (auch ohne tieferes Fachwissen) in der Lage sein, "am richtigen Wert feinzujustieren". Custom Einstellungen lassen sich ja (zumindest im vfw/vdub) abspeichern und man braucht dann halt später auch nur noch das gewünschte/fertige Profil -jenach Ausgangsmaterial/qualität- laden.

    Ah, OK, das vorher hörte sich für mich so an, als ob Du für jeden Film nochmal alles durchtestest.

  • Ja, war dann was mißverständlich ausgedrückt.
    Die Settings so wie sie jetzt sind, die sind imo für BlueRay Encodes ordentlich und da brauch ich auch nix mehr ändern.
    Nur, für schlechte DVD´s oder blockige DVB-T Aufnahmen kann ich sie so 1:1 nicht nehmen, weil Klötzchen damit höchstens "noch detailierter" dargstellt würden und deadzone, q und Deblock müssen dafür halt speziell angepaßt werden. Die jeweiligen Profile für z.b. weiches/körniges Ausgangsmaterial etc. pp. speicher ich dann nur ab und brauch später jenach Ausgangsquali dann nur noch das passende Profil laden.
    Ist anfangs was Arbeit, aber idr. nur einmalig nötig. :)

  • Avisynth erfordert nur zusätzliche Einarbeitungszeit, die aber nicht ersetzt das man den Codec trotzdem konfigurieren sollte.
    Viele Sachen wie z.b. den Noisefilter vom x.264 (wußte vorher nichtmal das der codec sowas sogar mitbringt) - also, das funktioniert eigentlich alles erstaunlich gut und man hat ja auch quasi endlos Kombinationsmöglichkeiten mit all den Settings.

    Man kann vom codec ja auch einen PSNR-Wert ausgeben lassen und der avg liegt bei knapp über 49.
    Kann man anhand der PSNR-Werte eigentlich Profilsettings sinnvoll bzw. praxistauglich optimieren oder ist das eher nur rein "theoretischer" Natur mit diesen PSNR-Werten?

  • PSNR ist nicht unbedingt ein Schönheitsmaß und gerade Einstellungen in Codecs die versuchen Optimierungen für das HVS (human visual system) zu erstellen senken z.B. i.d.R. den PSNR. (um höhere PSNR Werte zu erreichen hilft es oft einfach etwas zu glätten, was man aber in Wirklichkeit nicht immer als Qualitätssetigerung empfinden würde)
    Vielleicht ganz interessant: http://forum.gleitz.info/showthread.php…soll-Video-sein (und die verlinkten Themen&Paper)
    Generell sei gesagt, dass leider keine Metrik (egal ob PSNR, SSIM, VQM, MSE, oder wie sie alle heißen) bis dato eine verlässliche Optimierung erlauben.
    Ansonsten würde man diese Metrik bei der Codecentwicklung und generell bei der Videoverarbeitung verwenden um bearbeitetes Material zu optimieren. ;)
    -> letztendlich bleibt einem nichts anderes übrig als wirkliche Menschen auf das Material gucken zu lassen

    Cu Selur

    Ps.: damit mich niemand falsch versteht, alle Qualitätsmetriken haben ihren Sinn und helfen gewisse Qualitätsmerkmale zu identifizieren/überprüfen, aber gerade wenn es um Feintuning geht kann man sie i.d.R. vergessen.

  • Vor kurzem erst kam hier ein hübscher Vergleich von AVC-Encodern rein, der auf einer Seite unter anderem auch (zwar auf englisch, aber schön ausführlich und mit Bildern) erklärt hat, dass PSNR- und auch SSIM-Optimierung in x264 beide nicht unbedingt die am wenigsten auffälligen Qualitätsverluste zur Folge haben:

    H.264 encoding - CPU vs GPU: Nvidia CUDA, AMD Stream, Intel MediaSDK and x264 | Page 5 – Measuring quality: PSRN, SSIM and their drawbacks

    Mit der Maus auf die Links unter dem Bild zeigen und vergleichen.

  • Okay danke - der Link ist sehr interessant mit den Vergleichsbildern.
    Es kam mir nämlich auch so vor, das ein höherer Wert rein subjektiv zumindest auch nicht zwangsläufig besser wirkt.

    Die Settings hatte ich nochmals alle überarbeitet, u.a. die Max Refs auf 3, umh und Me range auf 20.
    Inter/Intra 2-4, die Psy nutze ich auch wieder - ebenso die "werksmäßigen" Tune Settings integriert über die Extra Commands, jedoch mit höherem DeBlock und mal gucken.
    An die B-Frames hatte ich mich letztlich nun auch gesetzt, denn die Einsparung dadruch kann ich ja anderweitig wieder investieren.
    Die Prediction hab ich auf Spatial gesetzt, denn das scheint mir die meiste Biteinsparung zu bringen.
    Was mir jedoch nicht ganz klar ist bei diesem Setting - es gibt ja da neben Spatial, Temporal noch die Auto Setting, wo der Codec wohl die geeignete Prediction auswählt.

    Ist Auto Prediction nur sinnvoll in 2pass encodes, so das nach dem ersten pass entschieden wird, welche Prediction angewandt wird?
    Macht Auto Prediction überhaupt Sinn im CRF Mode?


    Hab nochmal en Screenie der (B-Frame) Settings dazu gemacht:
    [Blockierte Grafik: http://img4.fotos-hochladen.net/thumbnail/x26411ajdep4wrg_thumb.jpg]

    Einmal editiert, zuletzt von Der_Lurchi (3. Oktober 2011 um 13:49)

  • Hi,
    nachdem was Zeit vergangen ist und ich im Nachhinein ja doch einsehen mußte, das meine Settings vorher schlecht waren, habe ich mich über die letzten Wochen daher versucht mehr ins encoding einzuarbeiten - wohl auch zwangsläufig gewzungen aufgrund der Festplattenpreise und das größenmäßig unoptimierte Files archivieren derzeit teuer kommen. :ani_lol:

    Den B-Frames habe ich mich so angenommen:
    bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1

    Sowie desweiteren habe ich gesehen, das es wohl auch Sachen wie -MBTree, -Tune usw gibt die in der Gui fehlen und was ich daher über die Extra Options folgendermaßen Kommandozeile hinzugefügt habe:
    --mbtree 1 --rc-lookahead 60 --sync-lookahead 10
    Beim Rest steige ich aber nicht ganz durch: --vbv-maxrate, -vbv-bufsize, -keyint
    In welchem Zusammenhang steht dies zum Mbtree, setzt man hier nix? :huh:


    Mein momentanes Profil sieht so aus:
    cabac=1 ref=3 deblock=1:-1:-1 analyse=0x3:0x133 me=umh subme=9 psy=1 fade_compensate=0.00 psy_rd=0.56:1.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=0 chroma_qp_offset=-1 threads=9 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=20.0000 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.40 aq=2:1.00

    Filmkörnung bleibt so teils erhalten (mag keine zu glattgebügelten/plastischen Bilder), aber gewiß geht das alles (jenach Ausgangsmaterial) besser und nun würde mich daher natürlich auch noch in dem Zusammenhang interessieren wie es mit den originalen x264 Tune Werten aussieht und hab dafür Google bedient; bin aber nicht sicher ob das auch alles so richtig meinerseits ergoogelt wurde:

    tune grain:
    -aq-strength 0.5 --no-dct-decimate
    -deadzone-inter 6 --deadzone-intra 6
    -deblock -2:-2 --ipratio 1.1
    -pbratio 1.1
    --psy-rd 1
    -psy trel 0.25
    -qcomp 0.8

    tune animation:
    --bframes {+2} --deblock 1:1
    -psy-rd 0.4
    - psy trel unset?
    --aq-strength 0.6
    --ref {Double if >1 else 1}

    tune stillimage:
    --aq-strength 1.2
    --deblock -3:-3
    --psy-rd 2.0
    -- psy Trell :0.7

    tune film:
    --deblock -1:-1
    -psy-rd unset?
    -psy Trellis 0.15
    -psy VAQ unset?

    Wird bei Tune Film wirklich gar kein PSy RD und VAQ gesetzt?

    20 Mal editiert, zuletzt von Der_Lurchi (19. Januar 2012 um 12:40)

  • Wird bei Tune Film wirklich gar kein PSy RD und VAQ gesetzt?

    Doch. Die Tunings beziehen sich immer auf die Standardeinstellungen der x264cli und dort sind teilweise zwei Einstellungen in einem Parameter, und "<unset>" bedeutet in diesem Fall meines Wissens nach, daß nur dieser Teil unverändert bleibt. Alle Einstellungen findest Du in der CLI mit "x264.exe --fullhelp > readme.txt".

    Die Tunings:

    Daraus ergibt sich für "--preset medium --tune film":

    Zitat

    cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

    /edit:
    Warum kann ich kein "[kleinerals]unset[größerals]" benutzen? Kann das wer beheben?

    Einmal editiert, zuletzt von sneaker2 (19. Januar 2012 um 14:45)

  • Hallo Sneaker,
    herzlichen Dank für die super Info, :)
    Hab die "unset" Psy Werte wie du gesagt hast nun aus der Preset übernommen und jetzt sieht das Film Tune auch so aus wie es sollte und hab nun ein schönes alternatives Tune für div. anderes Ausgangsmaterial.
    Für mehr Grain werde ich dahingehend tendentiell eher bei meinem Setting bleiben, das -Tune Grain habe ich ausprobiert, doch die niedrigen deadzone Werte schießen mir die Dateigröße doch was zu hoch.

    Dein Posting hat mir wirklich sehr weitergeholfen, :ja:
    die Frage bzgl. vbv hat sich indirekt auch erledigt. Das --sync-lookahead habe ich jedoch gesetzt, denn es scheint mir etwas Zeitersparnis beim CRF Encoding zu geben. Heut ist auch ein neues Build x264vfw2146K rausgekommen und habs gleich mal runtergeladen, das ist schon eine tolle Sache das x264 immer wieder überarbeitet und verbessert wird.

    2 Mal editiert, zuletzt von Der_Lurchi (19. Januar 2012 um 15:30)

  • Für mehr Grain werde ich dahingehend tendentiell eher bei meinem Setting bleiben, das -Tune Grain habe ich ausprobiert, doch die niedrigen deadzone Werte schießen mir die Dateigröße doch was zu hoch.

    Wenn die Dateigröße zu stark ansteigt, sollte man lieber den CRF etwas erhöhen - nicht auf gut Glück an den anderen Parametern drehen, bis man wieder in den gewünschten Bereich kommt. Wichtig ist doch bessere Qualität bei gleicher Dateigröße, weshalb man die einzelnen Einstellungen üblicherweise im 2pass-Verfahren bei konstanter Bitrate vergleicht.

  • hi Sneaker,
    also ich hatte mir parallel zu dem ganzen vor Zeiten die x264vfw DtsBuild runtergeladen gehabt, die ja vollkommen anders aufgebaut ist und wo man nur zwischen den x264 Presets (fast, slow, slower usw.) und Tunes auswählen kann. Ich hatte diese dann mal alle an mehreren Filmszenen durchprobiert und lande im Vergleich zu eigenen Settings (jenach Film) bei ähnlicher visueller Darstellung/Dateigröße bei -slowest + -tune grain, was jedoch um 40% langsamer ist und im direkten Vergleich das Preset (jenach Ausgangsmaterial) letzlich weniger Detailschärfe hat:
    [Blockierte Grafik: http://img4.fotos-hochladen.net/thumbnail/vergleichb1fmr23ekv_thumb.jpg]

    Insgesamt war das daher schon ok, das durch die KomisarVersion (die keine Presets hat) ich quasi "überall mal rumdrehen + reinschnuppern" mußte ... denn sonst hätte ich (aus Bequemlichkeit) immer nur vorgegebene Einstellungen verwendet, um mich irgendwann zu ärgern wieso die Encodings damit soviel länger dauern ohne das es spürbar anders aussieht.
    Sicherlich blick ich bei vielen Sachen noch nicht so durch, aber ich sehe das die Encodings im Vergleich zu denen von vor Monaten mittlerweile einiges besser werden und das obgleich die Dateigröße von 4Gb auf 1-2GB geschrumpft ist, es geht also irgendwo alles schon tendentiell mittlerweile in die richtigen Bahnen.

    17 Mal editiert, zuletzt von Der_Lurchi (19. Januar 2012 um 17:03)

  • Ich will Dir nicht vorschreiben, wie Du zu testen hast, und wenn Du mit dem Ergebnis zufrieden bist, ist auch alles in Ordnung. Allerdings sollte man sich schon den Fehlern in der Methodik bewußt sein.

  • Wie gesagt hat der Encoder keinerlei Presets, das es sowas gibt war mir zwar bekannt - aber bis gestern, kannte ich ja nicht die original -Preset & -Tune Werte. ;)
    Und das meine Methode über simples austesten Grundsettings ermitteln fehlerbehaftet ist liegt auf der Hand, - aber - wenn man die Psy (RDO/Trellis) mal außen vorläßt, dann sind meine Werte jedoch anscheinend mit diesem "x.264 slower preset" (bis auf die geringere Ref Frame + höhere merange) ja ansonsten interessanterweise fast vollkommen identisch. So falsch kann das Vorgehen daher eigentlich nichtmal gewesen sein.

    Die Blue Rays sind zudem nicht qualitativ gleich, so das ein Preset incl. Tune-Vorlage für alles gleichgut sein könnte.
    Sachen wie Avatar haben ein herausragendes Bild und Sachen wie Greenzone, Stranger usw. sind dann das komplette (Negativ) Gegenbeispiel (mit teils gruseligen Gerausche)

  • hi Selur,
    das ist ja was ich meine, das man nicht für jedes Material diegleichen Presets und insb. Psy nehmen kann.
    Und nicht nur die AQ Stärke hat Einfluß auf Blocking/Bandingeffekte -> wie Detailwirkung in dunklen Szenen u.o. einfarbigen Sachen(/Wände usw.), sondern auch der Modus (VAQ/AutoVaq). Imo erzielt man meist mit VAQ das ansprechendere Resultat, bei manchen Material ergibt jedoch auchmal AutoVaq ein homogener wirkendes Bild (und spart teils obendrein noch paar kb bei).
    Als ich den Tread hier erstellt hatte, war ich ziemlich überfordert mit der GUI; hatte die Finger daher von vielen Settings gelassen weil ich gar nicht wußte was man wo-gegen-was einstellen soll und in folgedessen gabs dann auch teils suboptimale Ergebnisse. Mittlerweile läuft das jedoch alles viel besser und jetzt gehts einen Schritt weiter, sich mit den Sachen zu beschäftigen (wie mbtree usw.) die aus welchen Gründen auch immer in der vfw GUI fehlen, aber trotzdem offensichtlich funktionieren (+weitere Vorteile jenachdem bringen)

    3 Mal editiert, zuletzt von Der_Lurchi (21. Januar 2012 um 03:57)

Jetzt mitmachen!

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