Dienstag, 8. April 2014

Kompressionsartefakte und Blender

English version (fighting compression in Blender)

Gerade, wenn man mit selektiver Farbkorrektur arbeitet, stößt man schnell an die Grenzen des meist komprimierten Ausgangsmaterials.


So treten schnell einmal wegen der geringen Bittiefe und der geringen Datenraten nervige Kompressionsblöcke auf, die, vor allem in den Farbkanälen, sehr schnell das frustrierende Ende einer Gradingsession bedeuten.


Im Compositor von Blender gibt es aber einen kleinen Trick, der einem diesbezüglich einigen Ärger ersparen kann: Der Bilateral Blur Node. Klingt komisch, ist aber im Prinzip ganz einfach:
Der Effekt zeichnet das Bild weich, versucht dabei aber, Kanten zu erkennen und diese beizubehalten. Das bedeutet für uns, dass wir, wenn wir den Node vor unsere Gradingnodes setzen, die im Ausgangsmaterial sehr subtilen Kompressionsartefakte glätten, aber wichtige Details im Bild verschonen!

Wir müssen dabei jedoch bedenken, dass Blender im linearen, szenenbezogenen Farbraum rechnet. Da sich die Farbwerte zur dargestellten Helligkeit exponenziell verhalten, liegen die Werte der dunkleren Bildbereiche näher beisammen und nur diese werden daher weichgezeichnet, was nicht in unserem Sinne ist. Schnelle Abhilfe verschaffen uns zwei Gamma-Nodes. Einer wird mit dem Wert 1/2.2 vor den Blur gesetzt, der andere dahinter mit dem Wert 2.2. Am Bilateral Blur Node stellen wir die Toleranz für die Kantenerkennung, die hier Color Sigma genannt ist, auf einen recht kleinen Wert um 0.03 und die Intensität der Glättung, die durch die Anzahl der Iterationen (Der Effekt wird mehrmals hintereinander ausgeführt) und den Space Sigma Wert gegeben ist, belassen wir bei den Standardwerten.


Und die Spuren der Kompression verschwinden!


Leider aber trotzdem auch sehr viele Details.
Um dieses Problem zu beheben, können wir die Tatsache ausnutzen, dass sich die störenden Kompressionsfehler über die Farbkanäle auswirken. Also wenden wir den Weichzeichner lediglich auf diese an und lassen die Luminanz unberührt.
Wir realisieren dies mit einem Mix-Node, der auf die Überblendungsmethode "Color" gestellt ist. Mit dem oberen Eingang verbinden wir das unberührte Bild, mit dem Unteren das geglättete.


Wir erhalten ein sauberes Bild!
(Zumindest, wenn man sich die Kompression für das Internet einmal wegdenkt ;) )