x264 kann kein rgb aber bei rgb hätte ich jetzt eher erwartet dass er in I444 konvertiert als in I420
x264_x86 & x264x64 (8 & 10 Bit Versionen) = Support von RGB24, i444, i422, i420
RGB24 -> I444 mit RGB Matrix
MeGUIs Arbeitsweise:
AVS ->avs4x264mod -> x264
avs4x264mod = Support YV24 (i444), YV16 (i422) und YV12 (i420)
Der 64Bit Encoder nutzt ausschließlich avs4x264mod, daher funktionieren auch nur die Farbräume die die Pipeline beherrscht.
Der 32Bit Encoder unterstüzt alle Farbräume, da avs4x264mod nicht zwischen AVS und x264 Encoder ist.
Der avs4x264mod wird als Pipeline genutzt um die 32Bit AVS Datei nach 64Bit x264 Encoder zu übertragen.
x264 braucht dann noch zusätzlich die Einstellung --output-csp
Angaben:
--output-csp "RGB" -> YV24 Video mit RGB Matrix (fällt beim x264 64Bit Encoder weg, da Pipeline)
--output-csp "i444" -> YV24 Video mit Benutzerdefinierten Matrix (Wird vom x264 64Bit Encoder unterstützt, da Pipeline es auch tut)
--output-csp "i422" -> YV16 Video mit Benutzerdefinierten Matrix (Wird vom x264 64Bit Encoder unterstützt, da Pipeline es auch tut. !!!Kein YUY2!!! Beim SSM unbedingt daher den avs4x264mod YUY2/YV16 Fix drin lassen, damit das Video am Ende auf YV16 konvertiert wird.)
--output-csp "i420" -> YV12 Video mit Benutzerdefinierten Matrix (Wird vom x264 64Bit Encoder unterstützt, da Pipeline es auch tut)
Ist an sich also ne ganz einfache Thematik dahinter. x264 unterstützt RGB, indem er für YUV24 einfach eine RGB Matrix nutzt. Die Farbmatrix für die Berechnung des YUV Farbraumes weist dann keinerlei Abweichungen des RGB Signals mehr auf. Das ist nur bei anderen Farbmatrizen der Fall.
Koeffizienten für die RGB Matrix:
Kr = 0
Kg = 1
Kb = 0
Koeffizienten für die BT.709 Matrix als Vergleich dazu:
Kr = 0.2126
Kg = 0.7152
Kb = 0.0722
Bei einer RGB Quelle die nach YUV konvertiert wird mit BT.709 würden Rundungsfehler entstehen, bei der RGB Matrix nicht.
Hoffe das ihr dann mit eurer Logik nun weiter kommt ;D