Keying
# Keying

Keying ist ein Fachbegriff aus der Videobearbeitung und beschreibt das Freistellen von Bildelementen vom Hintergrund (meist auf Basis einer Schlüsselfarbe, daher keying). Dabei wird eine Maske (Alphakanal) erstellt, die für jeden Bildbereich oder Pixel eine Transparenz definiert. Keying ist damit eine wichtige Technik der Visuellen Effekte, um Bild-Kompositionen (Compositing) zu erzeugen.

## Keyingmethoden

Es existieren unterschiedliche Keying-Techniken, deren Ansätze unterschiedliche Vor- und Nachteile aufweisen. Ziel aller Keying-Ansätze ist es, die Alphamaske möglichst präzise zu generieren. Hierbei müssen halb-transparente Elemente (zum Beispiel Glas oder Wasser), feine Konturen (zum Beispiel Haare) und Bewegungsunschärfe des Vordergrundobjekts beachtet werden.

Keine Technik ist grundsätzlich besser als alle anderen, stattdessen ist die passende Keyingmethode je nach Situation und Ausgangsmaterial auszuwählen. In vielen Situationen ist es zudem sinnvoll, mehrere Keys auf einzelne Bildbereiche anzuwenden (zum Beispiel Kopf, Schulter, Hände) und die Ergebnisse miteinander zu kombinieren, um die finale Maske zu erhalten.

### Chroma Key

Dieser Ansatz basiert darauf, einen Farbton (die Schlüsselfarbe, den key) aus einem Farbraum auszuwählen. Zusätzlich können Toleranzen für ähnliche Farbtöne definiert werden. Voraussetzung für den Chroma Key ist somit ein einfarbiger Hintergrund wie der Bluescreen. Umgangssprachlich existiert auch die Bezeichnung Colorkey.

Eine typische Anwendung ist der Fernseh-Moderator vor einer Wetterkarte.

In der einfachsten Form erfolgt die Berechnung des alpha-Werts für jeden Pixel $a_{\text{pixel}}$ mit dem Farbwert (engl. hue) $h_{\text{pixel}}$, sowie einem gewählten Key-Farbwert $h_{\text{key}}$ und einer Toleranz $t$ nach der Formel:

    $a_{\text{pixel}}={\begin{cases}1,&{\text{wenn }}(h_{\text{key}}-t)<h_{\text{pixel}}<(h_{\text{key}}+t)\\0,&{\text{sonst}}\end{cases}}$

### Color Difference Key

Der Ansatz des Color Difference Key ist ebenfalls für einfarbige Hintergründe vorgesehen. Hierbei werden die Unterschiede der Farbkanäle Rot, Grün und Blau ausgewertet, um eine Alphamaske zu erstellen. Für jeden Pixel wird der alpha-Wert $a$ aus den RGB-Werten $r,g,b$ wie folgt berechnet:

* Für einen Greenscreen: $a=g-\max(r,b)$
* Für einen Bluescreen: $a=b-\max(r,g)$

### 3D Keying

Der Grundgedanke beim 3D-Keying ist die Idee, alle Bildpunkte eines Bildes im dreidimensionalen Raum abzubilden und mit einem 3D-Objekt die Pixel des zu keyenden Hintergrunds einzuschließen. Für diese Pixelrepräsentation auf X-, Y- und Z-Achse werden normalerweise die R-, G- und B-Werte eines Bildes benutzt. Über die Deformation des 3D-Objekts können Pixel in diesem 3D-Raum gezielt ein- oder ausgeschlossen werden. Alle Pixel, deren RGB- bzw. XYZ-Wert innerhalb dieses Objekts liegt, werden als vollkommen transparent angesehen. Um semitransparente Bildbereiche keyen zu können, wird ein zweites, größeres 3D-Objekt eingesetzt, welches die semitransparenten Pixelwerte einschließt. Pixelwerte, die außerhalb des kleinen, aber innerhalb des großen Objekts liegen, berechnet man durch den Abstand vom Pixelwert zur Oberfläche des kleinen Objekts.

### Luma Key

Der Luma- oder Luminanz-Key basiert auf den Helligkeitswerten eines Bildes. Zur Freistellung wird ein Helligkeitswert (ggf. mit einem Toleranzwert) definiert. Bildbereiche, die den definierten Helligkeitswert besitzen, werden transparent gestellt, andere Bereiche nicht. Ein Lumakey wird verwendet, wenn der freizustellende Gegenstand sehr starke Helligkeitskontraste zum Hintergrund besitzt.

### Difference Matte

Bei diesem Verfahren wird der Unterschied zwischen zwei Bildern berechnet. Mit diesem Ansatz werden identische Bildbereiche von zwei Bildern transparent gesetzt. Somit bleiben nur Bildunterschiede sichtbar. Für eine Differencekey werden also zwei identische Einstellungen derselben Szene benötigt, um ein Objekt freizustellen. Dies erweist sich in der Praxis als komplex, da Filmgrain, Wind, Licht und Schatten oder eine pumpende Kamera Parameter sind, die die Aufnahme von zwei identischen Bildern verhindern.

### Depth Key

Verfügt ein Bild über genaue Tiefeninformationen (Z-Kanal), kann ein Depth Key mit diesen Werten Bildbereiche freistellen. Hierzu wird ein Tiefenwertebereich ausgewählt und als sichtbar definiert. Alle anderen Bildbereiche werden damit transparent.

## Implementierung

Viele elektronische oder digitale Bildmischgeräte bieten implementierte Keying-Methoden. Über Bedienelemente kann die Keying-Art (Chroma Key, Luma-Key, Linear-Key) ausgewählt werden, sowie die Parameter eingestellt werden.

Im Bereich der digitalen Schnittsysteme und Videobearbeitung bieten inzwischen nahezu alle bekannten Videobearbeitung-Anwendungen integrierte Keying-Lösungen. Zusätzlich werden spezielle Keying-Plugins angeboten, die umfangreiche Justierungsmöglichkeiten und komplexere Keys ermöglichen. Bekannte Keying-Werkzeuge sind

* Primatte (3-D Keyer)
* Ultimatte (Color Difference Keyer)
* Keylight Keyer (Color-Difference Keyer)

## Masken-Verfeinerung

Die erzeugte Maske des Keying-Prozesses kann durch weitere Methoden verfeinert werden, um den gewünschten Effekt zu erhalten.

### Garbage Matte

    Vor dem Anwenden eines Keys kann eine grobe Selektion um den gewünschten Bildbereich gezogen werden, um störende Hintergrundelemente auszuschließen. Durch die gesetzte "garbage matte" kann der folgende Key feiner gesetzt werden.

### Holdout Matte

    Konträr zur Garbage Matte wird hier eine Maske gezeichnet, um Bildbereiche zu erhalten und somit vom Key auszuschließen. Damit können Bereiche definiert werden, die die Farbe des Hintergrunds haben und dennoch nicht transparent erscheinen sollen (wie zum Beispiel blaue Augen bei einer Bluescreen-Aufnahme).

### Spill Suppression

    Als Spill werden die Bereiche bezeichnet, die aufgrund von Lichtreflexionen des blauen/grünen Hintergrundes Bereiche im Vordergrundobjekt blau/grün einfärbt. Überwiegend sind hierbei Haare und Kanten betroffen. Spill kann unterdrückt werden, indem unerwünschte Farbstiche im Vordergrund über einen Algorithmus der Farbkorrektur beseitigt werden. Hierbei wirkt sich die Verschiebung der Farbwerte jedoch nicht nur auf spezielle Pixel, sondern auf das gesamte Bild aus.
