Der x265-Encoder entwickelt sich...

  • Hmm,....

    Zitat

    Merge with default (code freeze for 1.0)

    Quelle: https://bitbucket.org/multicor…d305f3ab2c4f7736693f54fbd
    +

    Zitat

    Our focus for the near future remains on visual quality and rate control improvements.

    Quelle: http://forum.videohelp.com/thr…36&viewfull=1#post2313336
    +
    Blick auf das Changelog seit April -> irgendwie scheint der Focus sich verschoben zu haben, sehe vor allem kleine Fixes an allen Enden, aber nichts was wirklich mit ' visual quality and rate control improvements' zu tun hat, oder übersehe ich da was?

  • Die "nahe Zukunft" kann immer noch z.B. Version 1.5 sein, je nach dem wie man "nah" definiert.


    Und die Verbesserung der visuellen Qualität kann man unter anderem auch durch Fehlerkorrektur erreichen, wenn die Fehler und ihre Fortpflanzung durch P- und B-Frames die Qualität verschlechtert hatten. Oft sind solche bereits bekannten Fehler auch deutlich schneller zu korrigieren, als neue Funktionen erstmalig zu implentieren, deren Auswirkungen noch gar nicht mal klar als positiv oder negativ einzuschätzen sind, bis man sie tatsächlich implementiert und in vielen Fällen getestet hat.


    Bedenke auch, dass die Implementation neuer Funktionen in ihrer Wirkung dann auch vielelicht falsch eingeschätzt wird, wenn vorher noch unkorrigierte Fehler übrig sind.

  • Es ist soweit:


  • Eines der letzten Patches ist eventuell interessant für das effizientere Neuerstellen:


    Zitat

    'make clean-generated' will remove all the machine generated files in the build
    folder so that they will be re-generated with more up-to-date version info the
    next time you run 'make'


    Ich muss also wohl nun nicht mehr alle compilierten Dateien mit "make clean" löschen, nur weil ich die interne Versionsnummer aktualisiert haben möchte. Ich hoffe, dadurch müssen nur abhängige Dateien neu compiliert werden, das dürfte einiges beschleunigen.
    __


    Dachte ich.


    Es wird aber doch alles komplett neu gebaut.

  • Aktuelle Builds (etwa ab v1.0+8) sollen nun auch Y4M mit hoher Farbauflösung unterstützen, schreibt Tom.


    Ich habe schon mal Version 1.0+9-075705aa41a9 (GCC 4.8.2) hochgeladen.


    Code
    1. y4m: support variable bit depth via CXXXpDD Y4MPEG header; ie: C420p10
    2. ffmpeg's support for this is non-standard, so you must use -strict -1, aka:
    3. ffmpeg -i vid.avi -pix_fmt yuv420p10le -strict -1 -f yuv4mpegpipe - | ./x265 - --y4m o.hevc
  • In Kürze wird es Versionen geben, die auch ein "qpfile" als Parameter verwenden können, mit dem sich steuern lässt, wie welche Frames encodiert werden sollen (Erzwingen von [un-]referenzierten I-/P-/B-Frames an bestimmten Positionen, evtl. Quantisierungsfaktor). Das wird allerdings auch wieder die Interface-Version erhöhen.

  • Es gibt noch ein paar zusätzliche x265-Builds mit verschiedenen Compilern (MSys/MinGW GCC x86; MSVC11 x86 + AMD64); Mindestvoraussetzung für die MSVC-Builds dürfte Windows 7 mit MSVC 2012 Redistributable sein; eine Mehrkern-CPU mit AVX-Unterstützung und 8 GB RAM werden empfohlen.


    Würde gerne mal den x265 Encoder ausprobieren an einem kleinen Test AVI Video mit dem UT 4:2:2 Codec drin. ( Ein ganz normales SD Video )
    Läuft der x265 Encoder überhaupt noch unter Windows XP 32 Bit flüssig, bei einem i5 PC?
    Habe mir gerade die: x265 binaries Version (1.0+26) für 32 Bit geladen.
    Mal schauen ob es später auf meinem Video PC so einfach wie x264.exe zu bedienen ist..


    Die aktuellen Versionen (0.5+9x) sind auf http://x265.cc nun auch compiliert mit Visual Studio 2013 erhältlich (wahrscheinlich sogar statisch, also ohne die Installation der C++ Redist v12.0 zu erfordern) und bieten mittlerweile ein paar aus x264 bekannte Parameter: Preset/Tune und CRF (Standard = 28.0). Allerdings bezweifle ich, dass man hier Vorstellungen von "gleicher Qualität bei gleichen Parametern" entwickeln sollte; immerhin sind noch längst nicht alle Basisfunktionen des HEVC-Standards implementiert.


    Diese Commando Zeile sollte doch völlig ausreichen um das meiste abzudecken: ( ausser Spezielle Feinheiten )

    Code
    1. "C:\x265.exe" --preset slow --tune film --crf 20 --output "C:\Test123.h265" "C:\Test123.avs"


    ??



    Aber noch nimmt x265 keine AviSynth-Ausgabe an. Man müsste also das Ergebnis als 10-bit-Y4M/YUV speichern (da werden dann sicher viele Parameter notwendig, um das Eingabeformat genau zu definieren) oder mit avs4x265 pipen ... aber da lese ich immer Warnungen, dass AviSynth 2.60 erkannt und deshalb auf 8 bpp begrenzt wird. Womit geht denn dann mehr, mit AviSynth+?


    Also bleibe ich erst mal bei 8 bpp. Ist ja eh noch nichts ernstes mit x265.


    Meine Videos sind alle in 8 Bit!
    Also gibt es noch kein natives AviSynth[C] Plugin, das x265 Material decodieren kann?
    Auch nicht L-SMASH?


    Aktuell ist auf meinem Video PC folgendes drauf:
    AviSynth 2.6 Alpha 4 installiert
    AviSynth 2.6 MT dll 2013.03.09 von SEt im Windows/System32 kopiert


    Ich möchte gerne bei folgender Variante bleiben:


    1.) Mein Nacktes Windows XP SP3 System ohne Codec´s / Splitter etc...
    2.) Keine VfW Codecs ( Nur die Überlebenswichtigen wie: UT, Blackmagic in 4:2:2 und 4:2:0 )
    3.) Videos werden über ein natives AviSynth[C] Plugin decodiert ( FFMS2 & L-SMASH )
    4.) x264 Videos werden über die Commando Batch Zeile über ein AviSynth Script erzeugt ( Encoding )


    Auf meinen neuen i5 PC habe ich sehr wenige VfW Codecs installiert und erst recht kein FFDShow / LAV etc...
    Es fehlen somit sämtliche Codec´s / Splitter siehe:
    http://forum.gleitz.info/showt…727&viewfull=1#post440727


    Mein Media Player auf dem PC heißt: Virtual Dub ;-)
    Mit AviSynth und 2 nativen DLL Decoder ( FFMS2 & L-SMASH ) und einige wenige VfW Codecs,
    kann ich alle Video & Audio Formate öffnen, die für meine Zwecke völlig ausreichend sind!
    Allein schon die Libavcodec Bibliothek, die FFMS2 Decodieren kann, ist gewaltig :-)
    http://en.wikipedia.org/wiki/L…#Implemented_video_codecs
    VLC habe ich auch noch drauf, wenn ich mal zu faul bin, um mir für jedes Video ein neues AviSynth Script zu schreiben ;-)


    Mehr brauch ich wirklich nicht!

  • Diese Commando Zeile sollte doch völlig ausreichen um das meiste abzudecken: ( ausser Spezielle Feinheiten )

    Code
    1. "C:\x265.exe" --preset slow --tune film --crf 20 --output "C:\Test123.h265" "C:\Test123.avs"


    x265 unterstützt nur rohe Videodaten (mit und ohne y4m-Kopf) als Eingabe, keine avs, avi, mkv, mp4 o.ä. Außerdem gibt es meines Wissens (noch?) kein --tune film:

    Code
    1. C:\avs2pipemod.exe -y4mp "C:\Test123.avs" | "C:\x265.exe" --preset slow --crf 20 - --y4m --output "C:\Test123.h265"


    Beachte auch, daß --preset slow bei x265 wesentlich langsamer sein wird, als --preset slow bei x264. Dieselbe Kommandozeile funktioniert übrigens auch für die 16 Bit-Builds von x265, er gibt dann automatisch 10 Bit aus, was die Kodiereffizienz nochmal steigern kann, trotz 8 Bit-Quellmaterial. Unterstützung von 4:2:2 ist derzeit noch experimentell, u.a. weil dies noch nicht standardisiert wurde.


    Meine Videos sind alle in 8 Bit!
    Also gibt es noch kein natives AviSynth[C] Plugin, das x265 Material decodieren kann?
    Auch nicht L-SMASH?


    Nein, gemeint war das, was ich oben schrieb: x265 nimmt kein AviSynth an, das heißt aber nicht, daß Du die Ausgabe von x265 mit den gängigen Plugins nicht in AviSynth öffnen kannst.

  • Gegenfrage: Ist die Auswahl der Optionen eigentlich schon endgültig? ;) — Und derzeit wird ja immer noch an der entgültigen Wirkung gearbeitet, z.B. Fehler in Psy-RD korrigiert, die den Detailerhalt verschlechtert haben ("schon ewig" kritisierte Schwäche).


    Nun, die meisten zur Zeit vorhandenen Optionen werden wohl auch in Zukunft so bleiben, ich gehe nur noch von marginalen Änderungen aus, mit Ausnahme von wirklich neu implementierten Funktionen. In der Online-Dokumentation wird immer wieder mal eine etwas ausführlichere Erklärung eingepflegt (auch via git-Patches); aber letztlich wird sich die Detailtiefe dort in Grenzen halten. Welche Bedeutung und Auswirkung sämtliche Parameter im Einzelnen haben, wird also wohl ohne einen monatelangen Test von Leuten mit Fachwissen und Renderfarmen schwer zu beantworten sein. Und vielleicht ist das auch von untergeordnetem Interesse, wenn man dann ein vertrauenswürdiges Preset/Tuning-Gespann auch für inhaltsabhängige Tunings hat.

  • Hallo zusammen,


    X265 hat nun die Versionsnummer 1.0 erreicht.
    1.0 heißt in der Programierer Welt "ich bin mit dem Stand und den erreichten Zielen zufrieden"


    Da ich besonderen Wert auf eine exakte Ausgabegröße bei maximaler Qualität lege warte ich schon gespannt auf das Two Pass Encoding.


    Weiß jemand etwas über Two Pass und X265? (in der Roadmap des Projekts scheint das noch in weiter Ferne zu stehen)
    Wo besteht eignetlich genau das Problem beim Two Pass?


    Grüße Blade

  • 1.0 heißt in der Programierer Welt "ich bin mit dem Stand und den erreichten Zielen zufrieden"


    Das wurde nun in den letzten Monaten schon mehrfach erklärt, dass das bei x265 eben nicht so ist. Es wäre im Grunde also eher eine Version 0.10, sozusagen.


    Das Hauptproblem bei der Implementation von 2-pass-VBR ist eigentlich nur: Es müsste mal jemand machen. Wie üblich. ;D


    Bis dahin sind aber noch jede Menge angefangene Features zu korrigieren, die bisher noch nicht fehlerfrei oder zumindest nicht optimal laufen, z.B. Psy-RD. Und alles kostet so seine Zeit, egal ob mit bezahlten oder freiwilligen Helfern.

  • Version 1.1 ist raus. Neu sind vor allem Psy-RDO (zur Zeit noch nicht fehlerfrei, bitte nur im Bereich 0.2-0-5 testen), ein Lossless-Modus (interessanterweise sei QP=4 "verlustloser als" QP=0) und High-Bitdepth-Y4M-Unterstützung.

  • Leider gab es noch einen Absturz am Ende des Encodings für die zwei schnellsten Presets; dieser ist nun behoben.


    Kurtnoise entwickelt auch die AviSynth-Pipe avs4x265 weiter (Downloads) und hat in Version 0.4 rein paar Verbesserungen aus avs4x264mod übernommen, unter anderem Unterstützung für High Bit Depth in AviSynth 2.6.