x264-Einstellungen für Lichtquellen in dunklen Szenen

  • Hallo,

    ich nutze in Hybrid ein recht simples Profil für das x264-Encoding:

    Code
    x264 --crf 20.00 --profile high --level 4.1 --ref 4 --keyint 24 --min-keyint 1 --b-pyramid strict --lookahead-threads 1 --sync-lookahead 9 --rc-lookahead 12 --slices 4 --qpmin 10 --qpmax 51 --trellis 0 --psy-rd 1.00:0.0 --vbv-maxrate 40000 --vbv-bufsize 30000 --threads 6 --sar 1:1 --qpfile GENERATED_QP_FILE --non-deterministic --range tv --demuxer raw --input-res 48x48 --input-csp i420 --input-depth 8 --fps 25/1 --output-depth 8 --output OUTPUTFILE -

    Das hab ich seit Jahren so, habe ich bei meinem Umstieg von Windows zu Linux aus einer MeGUI-Profil übernommen.

    Problem ist oft, dass speziell in Szenen in denen eine Lichtquelle in einer an sich dunklen Szene auftauscht. Die Helligkeit sollte ohne "Absätze" gleichmäßig weniger werden je weiter man sich der Lichtquelle entfernt. Bei mir treten aber Abstufungen auf. Wie eine Art Ring um die Lichtquelle mit einer ca. gleiche Helligkeit, der Ring weiter außen ist dunkler, der Übergang dazwischen aber sehr plötzlich.

    Erinnert an die Höhenlinien für Berge auf einer Karte. Ich hoffe ich konnte erklären was ich meine. Leider hab ich beim letzten Film den ich gesehen habe die Szene nicht mehr gefunden.

    Ich suche Einstellungen um das bei x264-Encodings zu verhindern.

    edit

    Hab doch noch 2 Bsp. gefunden, die aber leider nicht ganz perfekt sind. Das erste ist keine Lichtquelle sondern ein einfach heller werdendes Bild. Beim zweiten bewegt sich die Lichtquelle und nimmt viel des Bildes ein.

  • ich hab mir mal ein testvideo geladen (

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.
    ) und die ergebnisse snd am tv und am computer eher mäßig. Ich hate aber mit bluras schon bessere ergebnisse, leider finde ich die stellen in den filmen nicht mehr. Kann es sein, dass auch das videoformat eine rolle spielt?

    _________________________

    Quote

    Zieht ein Bienenschwarm aus, so wird er herrenlos, wenn nicht der Eigentümer ihn unverzüglich verfolgt oder wenn der Eigentümer die Verfolgung aufgibt.


    § 961 BGB [Eigentumsverlust bei Bienenschwärmen]

    :D

  • Auf jeden Fall. Videocodecs wollen ja Bitrate effizient verteilen, und das tun sie meist, indem sie mehr davon dort verwenden, wo es detailreiche Inhalte gibt, weil es dort das Speichern hoher Frequenzanteile erfordert. Dadurch sparen sie in sehr detailarmen Szenen aber leider oft zu viel. Dagegen können Videomodelle helfen, die in der Lage sind, Verläufe über größere Distanzen zu modellieren. Das konnte H.264 (MPEG4 AVC) noch nicht so gut, da es nur Makroblöcke von 16² Pixeln verwendet. H.265 (HEVC), H.266 (VVC) und AOM AV1 haben auch größere Einheiten zur Verfügung. Und Wavelet-Formate könnten sogar Verläufe über das gesamte Bild hinweg modellieren (wenn es verbreitete Formate gäbe, die generell ähnlich effizient Videos codieren könnten wie MPEG und On2/Google/AOM).

    Zusätzlich kann es (auch bei AVC) schon helfen, mit einer höheren Präzision zu encodieren (10 bit statt 8 bit pro Kanal), und es gibt auch verschiedene psychovisuelle Tuning-Parameter (Stichwort "Anime").

  • Dadurch sparen sie in sehr detailarmen Szenen aber leider oft zu viel.

    Das sind auch meine Erfahrungen durchweg bei allen gängigen Codecs. Egal ob x264, x265 oder AV1... nicht nur Color Banding sondern auch Makroblocking, Schärfe und Detailverlust sind Resultate einer zu geringer Bitrate.

    Bei "Standard"-Encodes mit CR-Faktor gibt es zwischen den umfangreichen Szenen(z.B. Grain) und den detailarmen Szenen(neben Dunkelheit auch immer schwierig: Rotlicht, Nightvision, gern auch mal Fade-in/Fade-out's, blendendes Sonnenlicht, Schneeverwehungen... kann echt ganz unterschiedlich sein) eine ziemliche Disbalance. Beispiel: Twin Peaks "Pink Room"; Nighvision-Szene bei Silent of the Lambs, ziemlich gegen Ende.

    Wählt man den CR-Faktor so, dass Grain so gut wie vollständig erhalten bleibt, kann es trotzdem sein, dass einige detailarme Szenen zu wenig Bitrate bekommen und dort ein deutlicher Qualitätsverlust entsteht. Obwohl man ersteinmal davon ausgeht die perfekten Einstellungen gefunden zu haben, heißt ja nicht umsonst Constant Rate Factor :)

    Wählt man jetzt den Constant Rate Factor so, dass auch die Problemszenen wenig Qualitätsverlust erleiden, also entsprechend niedriger, explodiert die Bitrate in den detailreichen Szenen natürlich. Jetzt könnte man meinen, dass man zumindest die dunklenen Szenen durch wählen von AQ-Mode 3(auto-variance and bias to dark scenes) qualitativ aufbessern könnte, so muss ich sagen dass das in all meinen Test kaum einen Effekt hatte. Das Verringern der AQ-Strength kann hingegen ein wenig Besserung verschaffen.

    Was hingegen oft schon ganz gut klappt, ist das Deaktivieren von Mbtree(ich würde jedoch strikt davon abraten Mbtree zu deaktivieren, wenn mit festgelegter Zielbitrate encoded wird, sprich One- oder Two-Pass) und das verringern der pb-Ratio von 1.3 auf 1.2. (verbessert die Qualität der Bframes)

    Eine andere Methode die etwas mehr Fleiß erfordert, ist das Definieren von Zonen für die entsprechenden Problemszenen, d.h. man sucht sich die Start- und Endframes und setzt für diesen Abschnitt einen gewünschten CR-Faktor oder Bitrate-Multiplikator.

    Code
    --zones 100,200,crf=15/300,400,crf=16/500,600,b=1.5


    Edit: wenn Qualitätsmägel wie Color Banding schon auf dem Quellmaterial vorhanden ist, hilft natürlich auch eine höhre Bitrate nicht. Hier muss man dann zu einem Debanding-Filter greifen, wie schon erwähnt.

    Edited 2 times, last by Smurf (January 31, 2025 at 9:54 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!