Alphakanal
# Alphakanal

Der Alphakanal oder α-Kanal ist ein Begriff aus der Computergrafik. Ein digitales Bild enthält in der Regel Farbinformationen. Falls in der Bilddatei ein Alphakanal enthalten ist, finden sich dort zusätzliche Informationen zur Transparenz. Der Alphakanal ist also ein zusätzlicher Kanal, der in Rastergrafiken die Durchsichtigkeit der einzelnen Pixel (Bildpunkte) speichert. Die Darstellung eines Bildes mit Alphakanal auf einem Hintergrund wird als Alpha Blending bezeichnet. Eine typische Anwendung ist eine Szene im Freien, bei der die Vordergrundelemente einen Alphakanal besitzen und deswegen der Hintergrund mit dem Himmel komplett ersetzt werden kann, ohne dass die Manipulation auffällt.

## Geschichte

In der Filmtechnik waren bereits Jahrzehnte vor der Erfindung des Computers sogenannte Mattes gebräuchlich – Filmstreifen, die einzelne Objekte darstellten und die über einen Hintergrund gelegt werden konnten (Compositing). Mit der Einführung digitaler Filmtechniken wurden auch digitale Mattes entwickelt.
Der Begriff integral alpha wurde 1977 von Alvy Ray Smith und Edwin Catmull für die Idee eingeführt, dass Transparenzinformationen nicht in einer separaten digitalen Matte, sondern zusammen mit den Pixeln gespeichert werden sollten, um den Prozess zu vereinfachen. Dieser zusätzliche Bildkanal wurde „Alphakanal“ (alpha channel), die entsprechenden Pixel „RGBA“-Pixel genannt. Die Bezeichnung „Alpha“ bezieht sich auf die Variable $\alpha$ in der klassischen Formel zur linearen Interpolation
    $C=\alpha A+(1-\alpha )B$,
wie sie beim Alpha Blending verwendet wird. Durch die Einführung des Alphakanals wurden digitale Mattes überflüssig. 1984 entwickelten Thomas Porter und Tom Duff verfeinerte Alpha-Blending-Techniken (siehe auch Porter-Duff Composition).
Für ihre Verdienste bei der Entwicklung digitaler Compositing-Techniken erhielten Catmull, Porter, Duff und Smith 1996 einen Engineering Award der Academy of Motion Picture Arts and Sciences.

## Speicherung und Darstellung

Im Alphakanal werden bei verschiedenen Grafikformaten (z. B. PNG, PSD, TGA, DDS oder TIFF) Transparenzinformationen zusätzlich zu den eigentlichen Bilddaten gespeichert. Dabei besitzt ein Alphakanal meist dieselbe Farbtiefe wie ein Farbkanal eines Bildes. So umfasst ein Alphakanal bei einem 8-Bit-Bild 256 Stufen. Dem Wert Alpha=0 entspricht das Attribut „vollständig transparent“, d. h. unsichtbar. Alpha=255 entspricht „nicht transparent“.
Die maximale Anzahl der möglichen Transparenzabstufungen richtet sich nach der Anzahl der für den Alphakanal verwendeten Bits. Ein binärer Alphakanal ist ein minimaler Alphakanal, der 1 Bit verwendet und daher nur angeben kann, ob ein Bildpunkt entweder vollständig transparent oder vollständig opak ist. Im Ergebnis der Benutzung eines binären Alphakanals vergleichbar, kann auch eine Farbe eines Bildes als transparent definiert werden. Diese Art Transparenz wird im Graphics Interchange Format (GIF) verwendet, wodurch ein Farbton weniger zur Darstellung verwendet werden kann. Sie ist jedoch kein Alphakanal im technischen Sinne, da die Transparenzinformationen nicht für jeden Bildpunkt einzeln gespeichert werden. Andere Formate erlauben oft ein zusätzliches Byte pro Pixel und somit 2$^8$ = 256 Abstufungen. Im Gegensatz zum GIF kann im PNG-Dateiformat ein 8- oder 16-Bit-Alphakanal benutzt werden. Bei diesem „echten“ Alphakanal spricht man dann auch von Grafiken mit vier Kanälen, die oft als RGBA abgekürzt werden (Rot, Grün, Blau, Alpha).

## Arten von Alphakanälen

Alphakanäle können auf drei verschiedene Arten gespeichert werden:

### Externer bzw. separater Alphakanal

    Bei der Speicherung in Form eines externen Alphakanals werden die Transparenzinformationen als separate Datei gespeichert. Dabei handelt es sich um eine Graustufendatei, die beim Öffnen als Transparenzkanal interpretiert werden muss. Zur Darstellung eines Bildes mit externem Alphakanal müssen sowohl die Bilddatei als auch die Alphakanal-Datei importiert werden, und mittels der darstellenden Anwendung wird die korrekte Transparenz der Datei hergestellt. Dieser Vorgang wird auch Interpretation des Alphakanals genannt.

### Direkter Alphakanal

    Bei Dateien, die den Alphakanal als sogenannten direkten Alphakanal (straight alpha) enthalten, werden die Transparenzinformationen in einem separaten Kanal, zusätzlich zu den Farbkanälen, gespeichert. Ein Pixel innerhalb der Datei wird demnach nicht nur mit drei Werten (R,G,B) gespeichert, sondern mit vier Werten: (R, G, B, α). Zum Beispiel würde ein dunkelblaues Pixel, das mit voller Deckkraft angezeigt werden soll, bei einer Farbtiefe von 8 Bit durch die Werte (0, 0, 170, 255) gespeichert werden. Die Farbkanalinformation des Bildes wird durch den direkten Alphakanal nicht verändert.

### Integrierter Alphakanal

    Bei dem integrierten Alphakanal (premultiplied alpha) wird die Transparenzinformation wie beim direkten Alphakanal in einem eigenen Kanal gespeichert. Der wesentliche Unterschied zum direkten Alphakanal ist, dass die Farbwerte des Bildes mit einer Hintergrundfarbe im Verhältnis zum Alphakanal abgemischt werden. Wie viel von der Originalfarbe eines Pixels verwendet wird, hängt von seiner Deckkraft ab. Halbtransparente Pixel werden zum Beispiel mit 50 % Schwarz und 50 % Hintergrundfarbe gespeichert. Diese Integration des Alphakanals in die Farbkanäle geschieht nicht anstelle, sondern zusätzlich zur Speicherung des Alphakanals. Dadurch soll die korrekte Anzeige des Bildes auch in Anwendungen ermöglicht werden, die keinen Alphakanal unterstützen.

## Weitere Anwendungen

Alphakanäle können in diversen Bildbearbeitungsprogrammen definiert werden. Dabei können etwa auch Auswahlen im Bild für die spätere Wiederverwendung gespeichert werden. In Photoshop werden temporäre Alphakanäle gebildet, wenn eine Ebene maskiert wird. Alphakanäle können auch zum Freistellen eines Bildes verwendet werden. Dies geschieht oft, indem ein bestehender Farbkanal zu einem Alphakanal kopiert wird und dann mit den Bildbearbeitungsfunktionen (Kurven, Kontraste, Pinsel usw.) rasch bearbeitet werden kann.
Bei GIMP lässt sich der Alphakanal über die im Kontextmenü vorhandene Funktion „Auswahl aus Alphakanal“ auch für das Freistellen (auf anderen Ebenen oder in anderen Bildern) verwenden.
Ein Alphakanal kann auch für Videos verwendet werden, um Objekte vom Hintergrund zu trennen. Dabei kann der Alphakanal direkt mit dem Video oder in einer separaten Videodatei gespeichert werden.