Was bedeutet der Begriff "Kanal" in Bezug auf Computergrafik?


15

Ich habe Terminologie für Computergrafik studiert, und diese Aussage hat mich verwirrt.

Das Bild kann zur Transparenz Alphakanäle haben.

Ich habe versucht, nach der Bedeutung des Begriffs "Alpha-Kanal" zu suchen, aber ich war wirklich verwirrt von der Definition, die ein anderes Konzept verwendete, das "Kanal" genannt wurde. Ich bin mir nicht sicher, was dies bedeutet. Könnte jemand so freundlich sein, mir diesen Begriff zu erklären?

Antworten:


39

Digitale Farben können aus drei Komponenten bestehen: Rot, Grün und Blau. Wenn Sie diese kombinieren, erhalten Sie die endgültige Farbe, z. gelb ist 100% rot, 100% grün und 0% blau.

Die vierte Komponente ist, wie Sie bereits sagten, Transparenz. Zusammen bilden diese das Tupel RGBA(rot, grün, blau, alpha), das ein Bild darstellt.

Stellen Sie sich statt Pixel nun einen anderen Weg vor: Was ist, wenn Sie das Bild in vier Ebenen aufteilen? Sie könnten sie so trennen:

  • Alle roten Pixel auf einer Ebene
  • Alle grünen Pixel auf einer Ebene
  • Alle blauen Pixel auf einer Ebene
  • Ein Wert, der die Transparenz einer Ebene angibt

Diese Schichten werden tatsächlich als "Kanäle" bezeichnet. So sehen sie in einem Beispielbild aus:

Bildbeschreibung hier eingeben

In diesem Bild sehen Sie nur die roten Pixel auf dem roten Kanal. ebenfalls für grün und blau. Das ist alles, was es bedeutet - eine Art, sich Bilder als "Kanäle" von getrennten Farben vorzustellen, die miteinander kombiniert werden.


3
Tolle Antwort, und danke für die Information. Ich finde es toll, wie Sie das Konzept mit Bildern erklärt haben.
Stync

1
Vielleicht möchten Sie auch andere Farbsysteme erwähnen, da das Additiv nicht das einzige ist, das verwendet wird
jcora

4
Sollten diese Pro-Kanal-Bilder nicht Werte von Null (Schwarz) bis Vollwert (z. B. Rot) anstelle von Schwarz-> Rot-> Weiß (z. B.) haben, wie gezeigt? ( Etwa so: f.cl.ly/items/2Q2C1z2s331f1T1U341G/images.png )
Slipp D. Thompson

1
@ SlippD.Thompson ist richtig. In RGB wird Weiß erzeugt, indem jeder Farbkanal die volle Intensität hat, was bedeutet, dass das Bild von ashes999 den Regeln nicht entspricht.
Alex

4
Ich habe dieses Bild gewählt, weil es illustrativ ist. Das OP scheint über das Konzept verwirrt zu sein. Das Konzept einfacher zu erklären schien wichtiger zu sein als ein genaues Bild zu finden. Technisch sollte es vier Graustufenebenen sein (was mein ursprüngliches Bild war), aber das ist verwirrender.
Asche999

6

Der Begriff stammt aus der Definition von "Kanal", die einen bestimmten Teil eines Frequenzspektrums bedeutet. In diesem Fall werden die roten, grünen und blauen Komponenten einer Farbe oft als "Kanäle" bezeichnet (da rotes, grünes und blaues Licht Teile des sichtbaren Lichtspektrums sind).

Da Alpha eine weitere Komponente der Farbe in der Computergrafik ist (obwohl es sich nicht ausschließlich um sichtbares Licht wie das andere handelt), wird es auch als Kanal bezeichnet.


4

Die Alphakanäle wurden von George Lucas 'Firma Industrial Light & Magic erfunden (eigentlich hat Alvy Ray Smith die meiste Arbeit während der Arbeit dort geleistet, der zuvor bei Xerox PARC beschäftigt war - wem wir für fast alles im modernen Computing danken können!).

Alpha-Kanäle können zusätzlich zu coolen Effekten wie transparentem Fenster, transparenten Verläufen und realistischen Schatten für Subpixel-Operationen verwendet werden. In der Tat war die ursprüngliche Verwendung, weil Computergrafik zu der Zeit saugte. Um ein gut geglättetes Bild auf einen anderen Hintergrund (oder den Hintergrund eines Live-Films) zu legen, entstehen blockartige Kanten. Das reicht für einen Film nicht aus, und das Antialiasing der Bilder mit den Hintergründen nimmt zu viel CPU-Zeit in Anspruch. Also .. die Ränder des Bildes sind halbtransparent (der Alpha-Kanal). Auf diese Weise kann der Hintergrund mit unterschiedlicher Dichte durchscheinen. Dabei werden die Farben der beiden Bilder gemischt, um ein Anti-Aliasing zu erzielen. Dies wird heutzutage überall verwendet, um beispielsweise Symbole mit viel glatteren Rändern zu zeichnen, als es die Auflösung normalerweise zulässt - und Sie tun es nicht.

Alphakanäle können einfach in Hardware erstellt werden. Frühe Filmproduktionsmaschinen hatten ein "Genlock" -Bit (das auch auf Amiga- und einigen Atari-Maschinen verfügbar war), bei dem es sich im Grunde um einen Ausgabepin handelte, der von Computerausgabe auf Videoausgabe umschaltete. Der Pin wurde durch ein "Transparenz" -Bit in der Ausgabe angesteuert (normalerweise mit den "Hicolor" -Grafikmodi 5: 5: 5 für RGB und 1 Bit für Transparenz = 16 Bit / Pixel), was eine einfache Überlagerung des computergenerierten Kontexts über Live ermöglichte Video ohne Digitalisierung des Videos. Dies wurde später in einen analogen Ausgang mit einem 8-Bit-DAC umgewandelt. Anstatt zwischen Computer und Live-Video zu wechseln, wurde dieser gemischt. So wurden die unangenehmen blockartigen Kanten entfernt, die bei der 1-Bit-Technik verwendet wurden. Analoges Anti-Aliasing!

Moderne Grafikkarten können mehrere Informationsebenen gleichzeitig im Speicher speichern und die Alpha-Ebene verwenden, um mehrere Ebenen der Alpha-Transparenz in der Hardware zu mischen. Dadurch sehen Ihre "Sprites" und andere Objekte, die geglättet werden müssen, gut aus. Anstatt auf eine feste Hintergrundfarbe zu mischen, verwendet das Anti-Aliasing den Alpha-Kanal, um während des Mischens zu mischen. Natürlich können Sie mit dem Alphakanal alle möglichen Dinge tun, aber ich hoffe, das gibt Ihnen einen Anfang. Weitere Informationen zur Geschichte finden Sie in Wikipedia.


Können Sie Hinweise / Zitate auf die Tatsache geben, dass AC von IL & M erfunden wurde?
Vaxquis

Auf seinem Blog gibt es einen guten Überblick von Alvy selbst: alvyray.com/awards/AwardsAcademy96.htm . Dies würde darauf hindeuten, dass es von Alvy Ray und Ed Catmull während ihrer Zeit am NYIT erfunden wurde. Beide gründeten später Pixar.
mvl

Ich vergesse, wo ich es ursprünglich gelesen habe, aber Wikipedia erwähnt es
Evan Langlois

3

Keines der anderen Beispiele erklärt jedoch, warum es Alpha ist. Es ist aus dem Ausdruck in Alpha Compositing :

Bildbeschreibung hier eingeben

Dabei sind Ca und Cb die beiden Eingabefarbwerte und Co die kombinierte Ausgabefarbe.

Durch Variieren des Alphas zwischen 0 und 1 wird die Farbe zwischen zusammengesetzten Vorder- und Rückseitenbildern geändert.

(Bildverarbeitung hat auch "Gamma", aber meines Wissens nicht "Beta")


2

Alle Bilder haben einen oder mehrere "Informationskanäle". Der bekannte RGB-Bildtyp verfügt beispielsweise über drei Informationskanäle: Rot, Grün und Blau. Das heißt, jedem Pixel im Bild sind 3 Zahlen zugeordnet (wenn jede Zahl 8 Bit beträgt, handelt es sich um ein 24-Bit-Bild).

Alpha kann einen vierten Informationskanal hinzufügen (also eine vierte Zahl für jedes Pixel und ein 32-Bit-Bild). Dieser zusätzliche Kanal kann für eine Vielzahl von Zwecken verwendet werden. Der häufigste Zweck ist jedoch die Transparenz.

Übliche Dateiformate mit Alphakanälen sind PNG und TGA.


2

In vielen Bildformaten wird ein Pixel als Vektor mit 4 Komponenten definiert. RGB und Alpha. In der Perspektive des gesamten Bilds können Sie nur jede Komponente des Pixels auswählen. Dies liefert eine Reihe von Werten. Wenn Sie nur eine Komponente verarbeiten möchten, können Sie die Komponente aller Pixel des Bildes auswählen. Dies wird normalerweise als Kanal bezeichnet . Eine Sammlung einer Komponente für alle Pixel. Dann bedeutet Alphakanal Sammlung der Alphakomponente. Ebenso kann die Sammlung der einzelnen RGB-Komponenten als Rotkanal, Grünkanal und Blaukanal bezeichnet werden.


2

Ein Pixel ist eine Sammlung von Komponenten. Traditionell sind diese Komponenten rot, grün und blau, wobei jede von ihnen 8 Datenbits benötigt.

Da es oft vorteilhaft ist, den Speicher auf bestimmte Arten auszurichten, wurden diese manchmal in jeweils 32 Bit Speicherplatz gepackt. Dadurch verbleiben am Ende jedes Pixels 8 zusätzliche Datenbits. Da dies weder Rot noch Grün oder Blau ist, braucht es einen Namen - und Alpha war ein relativ bedeutungsloser Name.

Wenn Sie nun ein Array von Pixeln in einem Rechteck angeordnet haben, erhalten Sie Folgendes:

   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA

manchmal möchten Sie nur über eine der oben genannten Farben sprechen, sagen Sie rot:

   R***R***R***R***
   R***R***R***R***
   R***R***R***R***
   R***R***R***R***

Diese Unterauswahl von nur einem Element jeder Pixelkomponente wird als "Kanal" im Bild bezeichnet. Da die Pixel 4 Komponenten haben, hat dieses Bild 4 Kanäle.

Es gibt andere Bildformate ohne Alphakanal:

   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB

und es gibt Formate mit unterschiedlicher Anzahl von Bits pro Pixelkomponente (3,5,8,16,32), und einige haben ungleichmäßige Bits pro Pixelkomponente.

Der Kanal wird zum "virtuellen" Array von nur einer Pixelkomponente. (Ich sage virtuell, weil es zwischen jedem Element einen Schritt gibt, während Arrays traditionell keinen solchen Schritt haben.)

Der RGB-Anteil ist ebenfalls nicht festgelegt. Sie können ein Graustufenbild mit oder ohne Alphakanal erstellen. Sie können ein CMYK-Bild erstellen (Cyan Magenta Yellow Schwarz, normalerweise in einem subtraktiven Farbraum). Sie können ein Bild erstellen, das ein hat unzählige verschiedene Farbkanäle, die mit einem Specular Raytracer oder einem wissenschaftlichen Instrument erstellt wurden.

Während ich Pixel so behandelt habe, als wären sie immer zusammenhängend, ist es auch möglich, die Kanäle auf mehrere Orte aufzuteilen:

    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA

oder auch

    RRRR
    RRRR
    RRRR
    RRRR
    GGGG
    GGGG
    GGGG
    GGGG
    BBBB
    BBBB
    BBBB
    BBBB
    AAAA
    AAAA
    AAAA
    AAAA

oder RGB gepackt und A in einem separaten Puffer gespeichert haben.

Dies ist bei Live-Daten in Spielen ungewöhnlich, da moderne Grafikkarten häufig auf RGBA-Pixel ausgelegt sind. RGB kann einheitlich gehandhabt werden, und mit A können schnelle Berechnungen durchgeführt werden, die das Zusammensetzen eines RGBA-Pixels auf einem vorgemalten Hintergrund ermöglichen.

Der Alpha-Kanal wird häufig für Transparenzinformationen verwendet. Ärgerlicherweise wird der Maximalwert von Alpha von verschiedenen Codebasen manchmal als transparent und manchmal als undurchsichtig behandelt. Dies ist heutzutage wieder weniger verbreitet. Der Alpha-Kanal wurde auch für die Z-Buffer-Anordnung verwendet (wie weit der Pixel vom Betrachter entfernt ist), um ein ungeordnetes Zeichnen einer Szene zu ermöglichen, und traditionell wurde die Mip-Zuordnung durchgeführt, indem das Bild mit 2x 2x (oder 4x weniger Pixel) niedrigerer Auflösung hineingeschoben wurde der Alpha-Kanal des Bildes mit höherer Auflösung, rekursiv.

Selbst in einem System, das RGBA-Pixel verwendet, kann die Bedeutung dieser Pixel nicht übereinstimmen. Misst R, wie viel Rot ein Mensch sieht oder wie viele Photonen von Rot emittiert werden sollen? Dies ist der Unterschied zwischen linearen und nichtlinearen Farbräumen und wirkt sich auf die richtige Art und Weise aus, die Pixel mit einem Transparenzkanal zusammenzusetzen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.