Erklärung der x264-Melodie

41

Führen Sie diesen Befehl aus:

ffmpeg -i xr.mp4 -tune ya zu.mp4

enthüllt die möglichen Tune- Werte für x264 und FFmpeg:

[libx264 @ 0000000002167100] Mögliche Melodien: film animation grain stillimage psnr ssim
                                             Fastdecode-Null-Latenz

Ich konnte jedoch keine Referenz finden, die erklärt, was diese Werte tatsächlich bewirken.

Steven Penny
quelle

Antworten:

63

Das machen die Modi:

  • film - Für Filme mit hoher Bitrate und hoher Qualität. Hier wird das untere Deblocking verwendet.
  • animation- Für Cartoons usw. vorgesehen, bei denen das Deblocking verstärkt wird, um größere, flache Bereiche auszugleichen. Weitere Referenzrahmen werden verwendet.
  • grain - Dies sollte für Material verwendet werden, das bereits körnig ist. Hier wird das Korn nicht so stark herausgefiltert.
  • stillimage - Wie der Name schon sagt, wird die Codierung von Standbildern durch Verringern des Deblocking-Filters optimiert.
  • psnrund ssim- dies sind Debugging-Modi, um nur für gute PSNR- und SSIM-Werte zu optimieren. Bessere Metriken bedeuten jedoch nicht unbedingt eine bessere Qualität.
  • fastdecode - Deaktiviert CABAC und den In-Loop-Deblocking-Filter, um eine schnellere Dekodierung auf Geräten mit geringerer Rechenleistung zu ermöglichen.
  • zerolatency - Optimierung für schnelle Codierung und Streaming mit geringer Latenz

Sie können die detaillierten Optionen sehen, die mit jeder Melodie angewendet werden x264 --fullhelp:

--tune <string>         Tune the settings for a particular type of source
                          or situation
                              Overridden by user settings.
                              Multiple tunings are separated by commas.
                              Only one psy tuning can be used at a time.
                              - film (psy tuning):
                                --deblock -1:-1 --psy-rd <unset>:0.15
                              - animation (psy tuning):
                                --bframes {+2} --deblock 1:1
                                --psy-rd 0.4:<unset> --aq-strength 0.6
                                --ref {Double if >1 else 1}
                              - grain (psy tuning):
                                --aq-strength 0.5 --no-dct-decimate
                                --deadzone-inter 6 --deadzone-intra 6
                                --deblock -2:-2 --ipratio 1.1 
                                --pbratio 1.1 --psy-rd <unset>:0.25
                                --qcomp 0.8
                              - stillimage (psy tuning):
                                --aq-strength 1.2 --deblock -3:-3
                                --psy-rd 2.0:0.7
                              - psnr (psy tuning):
                                --aq-mode 0 --no-psy
                              - ssim (psy tuning):
                                --aq-mode 2 --no-psy
                              - fastdecode:
                                --no-cabac --no-deblock --no-weightb
                                --weightp 0
                              - zerolatency:
                                --bframes 0 --force-cfr --no-mbtree
                                --sync-lookahead 0 --sliced-threads
                                --rc-lookahead 0
Logan
quelle
1
Ich hatte den Eindruck, dass es sich bei --tune um körniges Material handelt, aber was Sie sagen, ist dies ein Synonym für qualitativ hochwertige Eingabe. Im Grunde genommen sollte ich diese Melodie immer verwenden, wenn meine Quellen immer eine hervorragende Qualität aufweisen. Und dann sollte --tune grain zum Beispiel für sehr altes Filmmaterial verwendet werden. Ist das korrekt?
Florin Andrei
6
@Florin Beide sind für hochwertige Quellen bestimmt, --tune filmfiltern jedoch einen Teil des Getreides und --tune grainbewahren mehr davon auf. AIUI Letzteres sollte nur verwendet werden, wenn die Körnung ein wichtiger Bestandteil der visuellen Darstellung ist, die bei den Zieleinstellungen noch erkennbar sein könnte.
Tobu
7
--tune filmFür Live-Action-Inhalte: alles, was mit einer Kamera aufgenommen wurde, im Gegensatz zu Cel-Animationen oder computergenerierten Texten / Diagrammen. Es ist sogar für etwas realistische 3D-Animationen geeignet, lassen Sie sich also nicht vom "Film" trennen. Es funktioniert für körnige und nicht-körnige Quellen und gleicht die Kornretention mit der Gesamtqualität pro Bitrate aus, während --tune grainversucht wird, Getreide um jeden Preis zu konservieren. nützlich, wenn die Aufbewahrung des Getreides aus irgendeinem Grund ein Muss ist. --tune filmhilft NICHT nur bei hohen Bitraten (in der Tat haben Abstimmungen eher einen Einfluss auf niedrigere Bitraten im Allgemeinen).
Thomasrutter
8
Hinweis: "Standbild" ist für Personen gedacht, die Tools schreiben, die x264 zum Codieren eines einzelnen Standbilds als Alternative zu JPEG oder JPEG2000 verwenden. Es kann jedoch hilfreich sein, wenn Sie ein Video erstellen, bei dem es sich im Wesentlichen um eine Diashow von Standbildern handelt, bei der ein statisches Bild für viele Frames unverändert angezeigt wird, bevor Sie zum nächsten Bild wechseln, sofern es sich buchstäblich um eine statische Diashow ohne Übergänge handelt. Der Punkt von "Standbild" ist, dass es bestimmte Psy-Optimierungen fördert, die einzelne Frames auf Kosten der Bewegungsbeschädigung verbessern würden.
Thomasrutter