Che cosa significa il termine "canale" quando utilizzato per quanto riguarda la computer grafica?


16

Stavo studiando la terminologia per la computer grafica e questa affermazione è venuta fuori che mi ha confuso.

L'immagine può avere canali alfa per trasparenza.

Ho provato a cercare il significato del termine "canale alfa", ma sono rimasto molto confuso dalla definizione che utilizzava un altro concetto chiamato "canale". Non sono davvero sicuro di cosa significhi, quindi qualcuno potrebbe essere così gentile da spiegarmi questo termine?

Risposte:


40

I colori digitali possono essere costituiti da tre componenti: rosso, verde e blu. Combina questi insieme e otterrai il colore finale, ad es. il giallo è rosso al 100%, verde al 100% e blu allo 0%.

Il quarto componente è, come hai detto, la trasparenza. Insieme, formano la tupla RGBA(rosso, verde, blu, alfa) che rappresenta un'immagine.

Ora, invece di pixel, pensaci in un altro modo: cosa succede se dividi l'immagine in quattro livelli? Potresti separarli in questo modo:

  • Tutti i pixel rossi su un livello
  • Tutti i pixel verdi su un livello
  • Tutti i pixel blu su un livello
  • Un valore che indica la trasparenza su un livello

Questi livelli sono in realtà chiamati "canali". Ecco come appaiono in un'immagine di esempio:

enter image description here

In questa immagine, puoi vedere solo i pixel rossi sul canale rosso; allo stesso modo per il verde e il blu. Questo è tutto ciò che significa: un modo di pensare alle immagini come "canali" di colori separati che sono combinati insieme.


3
Ottima risposta, e grazie per l'informazione. Adoro come hai usato le immagini per spiegare il concetto.
Stync,

1
Potresti anche voler menzionare altri sistemi di colore, perché l'additivo non è l'unico usato
jcora,

4
Le immagini per canale non dovrebbero avere valori da valore zero (nero) a valore pieno (ad es. Rosso) anziché nero-> rosso-> bianco (ad es.) Come mostrato? (Qualcosa del genere: f.cl.ly/items/2Q2C1z2s331f1T1U341G/images.png )
Slipp D. Thompson,

1
@ SlippD.Thompson ha ragione. In RGB, il bianco è realizzato avendo ogni canale di colore a piena intensità, il che significa che l'immagine di Ashes999 è un po 'allentata con le regole.
Alex,

4
Ho scelto questa immagine perché è illustrativa. L'OP sembra confuso sul concetto. Spiegare il concetto più semplicemente sembrava più importante che trovare un'immagine esatta. Tecnicamente, dovrebbero essere quattro livelli in scala di grigi (che è quello che era la mia immagine iniziale), ma è più confuso.
ashes999,

6

Il termine deriva dalla definizione di "canale" che significa una porzione specifica di uno spettro di frequenza. In questo caso, i componenti rosso, verde e blu di un colore sono spesso indicati come "canali" (poiché la luce rossa, verde e blu sono parti dello spettro di luce visibile).

Poiché l'alfa è un altro componente del colore nella computer grafica (anche se non strettamente correlato alla luce visibile come quella degli altri), è anche chiamato un canale.


4

I canali alfa sono stati in realtà inventati dalla società di George Lucas Industrial Light & Magic (in realtà Alvy Ray Smith ha svolto la maggior parte del lavoro mentre lavorava lì, precedentemente impiegato da Xerox PARC - che possiamo ringraziare per quasi tutto nell'informatica moderna!).

I canali alfa, oltre a creare effetti fantastici come la finestra trasparente, i gradienti trasparenti e le ombre realistiche, possono essere utilizzati per le operazioni sub-pixel. In effetti, l'uso originale era perché la grafica del computer all'epoca faceva schifo. Al fine di sovrapporre un'immagine ben anti-alias su uno sfondo diverso (o sullo sfondo di un film dal vivo), si finisce con bordi a blocchi. Ciò non vale per un film e provare ad anti-alias delle immagini con gli sfondi richiede troppo tempo della CPU. Quindi .. i bordi dell'immagine sono resi semi-trasparenti (il canale alfa). Ciò consente allo sfondo di mostrare a varie densità, mescolando i colori delle due immagini per anti-alias. Questo è usato ovunque in questi giorni, ad esempio, per disegnare icone con bordi molto più uniformi di quelli normalmente consentiti dalla risoluzione - e tu non

I canali alfa sono facilmente realizzabili in hardware. Le prime macchine di produzione cinematografica avevano un bit "genlock" (che era disponibile anche su Amiga e alcune macchine Atari), che era fondamentalmente un pin di uscita che passava dall'uscita del computer all'uscita video. Il pin era guidato da un bit "trasparenza" nell'output (di solito con modalità grafiche "hicolor" 5: 5: 5 per RGB e 1 bit per trasparenza = 16 bit / pixel), che consentiva una facile sovrapposizione del contesto generato dal computer su live video senza digitalizzare il video. Questo è stato successivamente modificato per essere un'uscita analogica con un DAC a 8 bit - quindi invece di passare dal computer al video dal vivo, lo ha miscelato - rimuovendo i cattivi bordi a blocchi che la tecnica a 1 bit ha usato. Anti-aliasing analogico!

Le moderne schede video possono archiviare più livelli di informazioni contemporaneamente e utilizzare il livello alfa per mescolare più livelli di trasparenza alfa nell'hardware. Ciò rende belli i tuoi "sprite" e altri oggetti che devono essere anti-alias. Invece di miscelare con un colore di sfondo fisso, l'antialiasing utilizza il canale alfa per mixare al volo. Certo, puoi fare ogni sorta di cose con il canale alfa, ma spero che questo ti dia un inizio. Per ulteriori informazioni, prova Wikipedia.


potresti fornire riferimenti / citazioni sul fatto che AC è stata inventata da IL&M?

C'è una buona panoramica dello stesso Alvy sul suo blog, qui: alvyray.com/awards/AwardsAcademy96.htm . Ciò suggerirebbe che è stato inventato da Alvy Ray ed Ed Catmull mentre erano al NYIT. Entrambi in seguito hanno fondato la Pixar.
mvl

Dimentico dove l'ho letto inizialmente, ma Wikipedia lo menziona
Evan Langlois il

3

Nessuno degli altri esempi spiega perché sia ​​alfa, però. Viene dall'espressione in Alpha Compositing :

inserisci qui la descrizione dell'immagine

dove Ca e Cb sono i due valori di colore di input e Co è il colore combinato di output.

Variando l'alfa tra 0 e 1 varia il colore tra le immagini composte anteriori e posteriori.

(L'elaborazione delle immagini ha anche "gamma", ma non "beta" per quanto ne so)


2

Tutte le immagini hanno 1 o più "canali" di informazioni. Ad esempio, il familiare tipo di immagine RGB ha 3 canali di informazioni: rosso, verde e blu. Cioè, ogni pixel nell'immagine ha 3 numeri associati (se ogni numero è 8 bit, allora è un'immagine a 24 bit).

Alpha può aggiungere un quarto canale di informazioni (quindi un quarto numero associato a ciascun pixel e un'immagine a 32 bit). Questo canale aggiuntivo può essere utilizzato per vari scopi, ma lo scopo più comune è la trasparenza.

I formati di file comuni con i canali alfa sono PNG e TGA.


2

In molti formati di immagine, un pixel è definito come un vettore con 4 componenti. RGB e alfa. Nella prospettiva dell'intera immagine, è possibile selezionare solo ciascun componente del pixel e ciò fornisce una serie di valori. Se si desidera elaborare solo un componente, è possibile selezionare il componente di tutti i pixel dell'immagine e questo viene generalmente chiamato canale . Una raccolta di un componente per tutti i pixel. Quindi canale alfa significa raccolta di componenti alfa. Allo stesso modo, la raccolta di ciascun componente RGB può essere definita canale rosso, canale verde e canale blu.


2

Un pixel è una raccolta di componenti. Tradizionalmente questi componenti sono rossi, verdi e blu, ognuno dei quali prende 8 bit di dati.

Poiché è spesso vantaggioso allineare la memoria in determinati modi, questi a volte erano impacchettati in 32 bit di spazio ciascuno. Questo lascia 8 bit di dati extra alla fine di ogni pixel. Dato che questo non è né rosso, né verde, né blu, ha bisogno di un nome - e alpha era un nome relativamente insignificante.

Ora, quando hai una matrice di pixel disposta in un rettangolo, ottieni questo:

   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA

a volte vuoi parlare solo di uno dei colori sopra, dì rosso:

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

questa sottoselezione di un solo elemento di ciascun componente pixel è chiamata "canale" nell'immagine. Poiché i pixel hanno 4 componenti, questa immagine ha 4 canali.

Esistono altri formati di immagine in cui non esiste un canale alfa:

   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB

e ci sono formati con diverso numero di bit per componente pixel (3,5,8,16,32) e alcuni hanno bit non uniformi per componente pixel.

Il canale diventa l'array "virtuale" di un solo componente pixel. (Dico virtuale, perché c'è un passo tra ogni elemento, mentre gli array tradizionalmente non hanno tale passo)

Neanche la porzione RGB è fissa: potresti avere un'immagine in scala di grigio con o senza un canale alfa, puoi avere un'immagine CMYK (ciano magenta giallo, di solito in uno spazio cromatico sottrattivo), puoi avere un'immagine che ha un tutta una miriade di diversi canali di colore creati da un raytracer speculare o da uno strumento scientifico.

Mentre ho trattato i pixel come se fossero sempre contigui, è anche possibile suddividere i canali su più posizioni, in questo modo:

    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA

o anche

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

o avere RGB imballato e A memorizzato in un buffer separato.

Questo è raro nei dati live nei giochi, perché le moderne schede grafiche sono spesso progettate attorno ai pixel RGBA. RGB può essere gestito in modo uniforme e con A rapidi calcoli adiacenti possono essere eseguiti che consentono la composizione di un pixel RGBA su uno sfondo preverniciato.

Il canale alfa viene spesso utilizzato per informazioni sulla trasparenza. In modo fastidioso, il valore massimo di alfa è talvolta trattato come trasparente, e talvolta come opaco, da basi di codice diverse. Questo è di nuovo meno comune al giorno d'oggi. Il canale alfa è stato anche utilizzato per l'ordinamento del buffer z (quanto dista il pixel dal visualizzatore) per consentire il disegno non ordinato a una scena, e tradizionalmente la mappatura del mip è stata eseguita spostando l'immagine con risoluzione inferiore 2x 2x (o 4x in meno pixel) in il canale alfa dell'immagine ad alta risoluzione, ricorsivamente.

Anche in un sistema che utilizza pixel RGBA, il significato di questi pixel può non essere d'accordo. R misura quanto rosso vede un essere umano o quanti fotoni di rosso dovrebbero essere emessi? Questa è la differenza tra spazi di colore lineari e non lineari e influisce sul modo corretto di comporre detti pixel con un canale di trasparenza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.