Arbeiten mit 16-Bit

Auch wenn die Source gerade einmal 8-Bit bietet, kann es dennoch Vorteile haben, Filter mit 16-Bit auszustatten bzw. vorher auf 16-Bit zu konvertieren. Das Video selber wird ja im Endeffekt eh auf 10-Bit gebracht.

 

Vorteile:

– beugt Banding vor
– Gradients/Übergänge werden glatter
– Kleinere Dateigröße

color_depth_compare

 

Umgang mit 16-Bit bei Filtern

Der Umgang ist relativ einfach. Man muss nur den Parameter „lsb“ auf wahr bzw. true setzen. Zu beachten ist, dass es noch „lsb_in“ und bei manchen Filtern auch „lsb_out“ gibt. Auch haben manche Filter diese Option gar nicht, was so viel heißt wie sie funktionieren nur mit 16-Bit (wie Dither_resize16) oder funktionieren nur 8-Bit. Aber zurück zu den lsb-Parametern.
„lsb=true“ muss immer gesetzt werden, wenn man mit 16-Bit arbeitet (außer es ist ein nur 16-Bit Filter). „lsb_in=true“ setzt man, wenn diese Source bereits 16-Bit empfängt. „lsb_out=true“ (sofern vorhanden), dass sie diese 16-Bit weiter übergibt. Möglich ist es auch, dass „lsb_inout=true“ funktioniert.
Manche Filter nutzen andere Parameter wie z.B. f3kdb. Dort werden „lsb_in“ von „input_depth“ und „lsb_out“ von „output_depth“ ersetzt.

Beispiele:

Dither_convert_8_to_16()
gradfun3mod(lsb=true,lsb_in=true) #bekommt 16-Bit und soll auch damit arbeiten.
gradfun3mod(lsb=true) #sorgt selber für die 16-Bit und wird damit arbeiten.
#Dies funktioniert nur mit dem Filter, den man an erster Stelle mit lsb=true setzt, alle darunter müssen dann ein "lsb_in=true" besitzen.
f3kdb(input_depth=8, output_depth=16)

 

Muss man also 16-Bit wirklich nutzen?

Nein. Jeder Encoder hat seinen eigenen Stil bzw. Methode.
Es ist nicht falsch alles in 8-Bit zu belassen und diese 8-Bit an x264 zu übergeben.
Jedoch kann 16-Bit besonders beim Deband ziemliche Vorteile haben.

 

Welche Methoden gibt es denn alles?

Die mir bisher am öftesten bekannt sind und genutzt werden:
1) 8-Bit filtern, 8-Bit an x264 übergeben, [8-Bit -> 10-Bit x264 überlassen]
2) 16-Bit filtern, 8-Bit an x264 übergeben, [8-Bit -> 10-Bit x264 überlassen]
3) 16-Bit filtern, 16-Bit an x264 übergeben, [16-Bit -> 10-Bit x264 überlassen]
4) 16-Bit filtern, 10-Bit an x264 übergeben, [10-Bit in x264 belassen]

Je nachdem ob man 8-Bit oder 10-Bit encoden will, ist der Schritt in den eckigen Klammern anders oder fällt weg.

 

Und Methode 2/3/4 funktionieren wie?

/* Methode 2 (Möglichkeit 1) */
Dither_convert_8_to_16()
#filtern
Output8bit()
/* Methode 2 (Möglichkeit 2) */
Dither_convert_8_to_16()
#filtern
DitherPost(mode=8) #Alternativ: mode=0, mode=6 , mode=7 - Höher = Langsamer
/* Methode 3 (Möglichkeit 1) */
Dither_convert_8_to_16()
#filtern
Output16bit()
/* Methode 3 (Möglichkeit 2) */
Dither_convert_8_to_16()
#filtern
Dither_out()
/* Methode 4 (Möglichkeit 1) */
Dither_convert_8_to_16()
#filtern
Output10bit()
/* Methode 4 (Möglichkeit 2) */
Dither_convert_8_to_16()
#filtern
Dither_quantize(10,mode=8,reducerange=true)
Dither_out()

Ich persönlich bevorzuge die Methode 4 (Möglichkeit 2).

 

Jetzt ist jedoch meine (komplette) Vorschau grün, was tun?

Dafür gibt es ebenfalls einen Filter, welcher eine Vorschau ermöglicht. Hierfür müssen jedoch alle Konvertierungen von 16-Bit auf X-Bit auskommentiert werden wie z.B. „Dither_out“, „Dither_quantize“ und „OutputXbit()“

DitherPost(Mode=6) #schnellere Vorschau, unsauberer
DitherPost(Mode=8) #langsamere Vorschau, sauberer
#Vor dem encoden dann auskommentieren oder rauslöschen

Alternativ kann man in AvsPmod die Bittiefe für die Vorschau umstellen:
2017-01-21-18_44_57-windows-10-x64-vmware-workstation

Gibt es bei x264 etwas zu beachten?

Ja, man muss den Input jeweils setzen.

8 -> Methode 1 & 2
10 -> Methode 4
16 -> Methode 3

--input-depth 8
--input-depth 10
--input-depth 16