Apa arti istilah "saluran" ketika digunakan dalam hal grafik komputer?

16

Saya sedang mempelajari terminologi untuk grafik komputer, dan pernyataan ini membuat saya bingung.

Gambar dapat memiliki saluran alfa untuk transparansi.

Saya mencoba mencari arti dari istilah "saluran alpha," tetapi saya benar-benar bingung dengan definisi yang menggunakan konsep lain yang disebut "saluran." Saya tidak begitu yakin apa artinya ini, jadi bisakah seseorang berbaik hati untuk menjelaskan istilah ini kepada saya?

Stync
sumber

Jawaban:

40

Warna digital dapat terdiri dari tiga komponen: merah, hijau, dan biru. Gabungkan ini bersama-sama, dan Anda mendapatkan warna akhir, misalnya. kuning adalah 100% merah, 100% hijau dan 0% biru.

Komponen keempat adalah, seperti yang Anda sebutkan, transparansi. Bersama-sama, ini membentuk tuple RGBA(merah, hijau, biru, alfa) yang mewakili suatu gambar.

Sekarang, alih-alih piksel, pikirkan dengan cara lain: bagaimana jika Anda membagi gambar menjadi empat lapisan? Anda dapat memisahkan mereka seperti ini:

  • Semua piksel merah pada satu lapisan
  • Semua piksel hijau pada satu lapisan
  • Semua piksel biru pada satu lapisan
  • Nilai yang menunjukkan transparansi pada satu lapisan

Lapisan-lapisan ini sebenarnya disebut "saluran." Seperti apa mereka dalam gambar sampel:

masukkan deskripsi gambar di sini

Pada gambar ini, Anda hanya dapat melihat piksel merah pada saluran merah; demikian juga untuk hijau dan biru. Itu semua artinya - cara berpikir tentang gambar sebagai "saluran" warna terpisah yang digabungkan bersama.

ashes999
sumber
3
Jawaban yang bagus, dan terima kasih atas informasinya. Saya suka bagaimana Anda menggunakan gambar untuk menjelaskan konsep.
Stync
1
Anda mungkin juga ingin menyebutkan sistem warna lain, karena aditif bukan satu-satunya yang digunakan
jcora
4
Tidakkah seharusnya gambar per saluran tersebut memiliki nilai dari nilai nol (hitam) hingga nilai penuh (mis. Merah) alih-alih hitam-> merah-> putih (misal) seperti yang ditunjukkan? (Sesuatu seperti ini: f.cl.ly/items/2Q2C1z2s331f1T1U341G/images.png )
Slipp D. Thompson
1
@ SlippD. Thompson benar. Dalam RGB, putih dibuat dengan meminta setiap saluran warna memiliki intensitas penuh, yang berarti bahwa gambar abu-abu agak longgar dengan aturan.
Alex
4
Saya memilih gambar ini karena ilustrasi. OP sepertinya bingung dengan konsep itu. Menjelaskan konsep lebih sederhana sepertinya lebih penting daripada menemukan gambar yang tepat. Secara teknis, seharusnya empat layer skala abu-abu (yang merupakan gambar awal saya), tapi itu lebih membingungkan.
ashes999
6

Istilah ini berasal dari definisi "saluran" yang berarti bagian spesifik dari spektrum frekuensi. Dalam hal ini, komponen merah, hijau dan biru dari suatu warna sering disebut sebagai "saluran" (karena cahaya merah, hijau dan biru adalah bagian dari spektrum cahaya yang terlihat).

Karena alpha adalah komponen warna lain dalam grafik komputer (walaupun tidak satu pun yang terkait erat dengan cahaya tampak seperti yang lain), alfa juga disebut saluran.


sumber
4

Saluran Alpha sebenarnya diciptakan oleh perusahaan George Lucas Industrial Light & Magic (sebenarnya Alvy Ray Smith melakukan sebagian besar pekerjaan sambil bekerja di sana, yang sebelumnya dipekerjakan oleh Xerox PARC - yang dapat kita syukuri untuk hampir semua hal dalam komputasi modern!).

Saluran alfa, selain melakukan efek keren seperti jendela transparan, gradien transparan, dan bayangan realistis, dapat digunakan untuk operasi sub-pixel. Padahal, penggunaan aslinya karena grafis komputer pada saat itu tersedot. Untuk overlay gambar anti-alias dengan baik ke latar belakang yang berbeda (atau latar belakang film langsung), Anda berakhir dengan tepi yang pucat. Itu tidak akan berlaku untuk film, dan mencoba anti-alias gambar dengan latar belakang membutuhkan waktu CPU terlalu banyak. Jadi .. tepi gambar dibuat semi-transparan (saluran alpha). Hal ini memungkinkan latar belakang terlihat pada berbagai kepadatan - pencampuran warna dari dua gambar bersama untuk anti-alias itu. Ini digunakan di mana-mana akhir-akhir ini, misalnya, untuk menggambar ikon dengan tepian yang jauh lebih halus daripada resolusi biasanya - dan Anda tidak perlu

Saluran alfa mudah dilakukan dalam perangkat keras. Mesin produksi film awal memiliki bit "genlock" (yang tersedia pada Amiga dan beberapa mesin Atari juga), yang pada dasarnya merupakan pin output yang beralih dari output komputer ke output video. Pin didorong oleh bit "transparansi" dalam output (biasanya dengan mode grafis "hicolor" 5: 5: 5 untuk RGB dan 1 bit untuk transparansi = 16 bit / piksel), yang memungkinkan overlay yang mudah dari konteks yang dihasilkan komputer selama siaran langsung video tanpa mendigitalkan video. Ini kemudian dimodifikasi menjadi output analog dengan DAC 8-bit - jadi alih-alih beralih antara komputer dan video langsung, itu dicampur itu - menghilangkan tepi ganjil jahat yang digunakan teknik 1-bit. Anti-aliasing analog!

Kartu video modern dapat menyimpan banyak lapisan informasi dalam memori sekaligus dan menggunakan lapisan alfa untuk mencampur beberapa lapisan transparansi alfa dalam perangkat keras. Ini membuat "sprite" Anda dan objek lain yang perlu anti-alias terlihat bagus. Alih-alih pencampuran ke warna latar belakang yang tetap, anti-aliasing menggunakan saluran alpha untuk mencampur dengan cepat. Tentu saja, Anda dapat melakukan segala macam hal dengan saluran alpha, tapi saya harap ini memberi Anda permulaan. Untuk sejarah lebih lanjut, coba wikipedia.

Evan Langlois
sumber
dapatkah Anda memberikan referensi / kutipan pada fakta bahwa AC telah ditemukan oleh IL&M?
Ada ikhtisar yang bagus dari Alvy sendiri di blog-nya, di sini: alvyray.com/awards/AwardsAcademy96.htm . Ini menunjukkan bahwa itu diciptakan oleh Alvy Ray dan Ed Catmull ketika mereka berada di NYIT. Keduanya kemudian mendirikan Pixar.
mvl
Saya lupa di mana saya awalnya membacanya, tetapi wikipedia menyebutkannya
Evan Langlois
3

Namun, tidak ada contoh lain yang menjelaskan mengapa itu alfa. Itu dari ekspresi di Alpha Compositing :

masukkan deskripsi gambar di sini

di mana Ca dan Cb adalah dua nilai warna input dan Co adalah warna gabungan output.

Memvariasikan alpha antara 0 dan 1 memvariasikan warna antara gambar gabungan depan dan belakang.

(Pemrosesan gambar juga memiliki "gamma", tetapi tidak "beta" sejauh yang saya tahu)

pjc50
sumber
2

Semua gambar memiliki 1 atau lebih "saluran" informasi. Misalnya, tipe gambar RGB yang dikenal memiliki 3 saluran informasi: Merah, Hijau, dan Biru. Artinya, setiap piksel dalam gambar memiliki 3 angka yang terkait dengannya (jika setiap angka adalah 8 bit, maka itu adalah gambar 24 bit).

Alpha dapat menambahkan saluran informasi ke-4 (sehingga nomor ke-4 dikaitkan dengan setiap piksel, dan gambar 32 bit). Saluran tambahan ini dapat digunakan untuk berbagai tujuan, tetapi tujuan yang paling umum adalah transparansi.

Format file umum dengan saluran alfa adalah PNG dan TGA.

jhocking
sumber
2

Dalam banyak format gambar, A pixel didefinisikan sebagai vektor dengan 4 komponen. RGB dan alpha. Dalam perspektif seluruh gambar, Anda hanya dapat memilih setiap komponen piksel, dan ini memberikan serangkaian nilai. Jika Anda ingin memproses hanya satu komponen, maka Anda dapat memilih comonent dari semua piksel gambar, dan ini biasanya disebut saluran . Kumpulan satu komponen untuk semua piksel. Kemudian saluran alpha berarti kumpulan komponen alpha. Demikian pula, koleksi setiap komponen RGB dapat disebut saluran merah, saluran hijau, dan saluran biru.

Eonil
sumber
2

Pixel adalah kumpulan komponen. Secara tradisional komponen ini merah, hijau dan biru, dengan masing-masingnya mengambil 8 bit data.

Karena sering menguntungkan memiliki memori yang diselaraskan dengan cara-cara tertentu, ini di mana kadang-kadang dikemas ke dalam 32 bit ruang masing-masing. Ini menyisakan 8 bit data tambahan di akhir setiap piksel. Karena ini bukan merah, atau hijau, atau biru, itu perlu nama - dan alfa adalah nama yang relatif tidak berarti.

Sekarang, ketika Anda memiliki array piksel yang disusun menjadi persegi panjang, Anda mendapatkan ini:

   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA

terkadang Anda hanya ingin berbicara tentang salah satu warna di atas, katakanlah merah:

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

sub pemilihan ini hanya dari satu elemen dari setiap komponen piksel disebut "saluran" pada gambar. Karena piksel memiliki 4 komponen, gambar ini memiliki 4 saluran.

Ada format gambar lain di mana tidak ada saluran alfa:

   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB

dan ada format dengan jumlah bit per komponen pixel yang berbeda (3,5,8,16,32), dan beberapa memiliki bit yang tidak seragam per komponen pixel.

Saluran menjadi array "virtual" hanya dari satu komponen pixel. (Saya katakan virtual, karena ada langkah di antara setiap elemen, sedangkan array secara tradisional tidak memiliki langkah seperti itu)

Bagian RGB juga tidak diperbaiki - Anda dapat memiliki gambar skala abu-abu dengan atau tanpa saluran alfa, Anda dapat memiliki gambar CMYK (blacK Cyan Magenta Yellow, biasanya dalam ruang warna yang kurang), Anda dapat memiliki gambar yang memiliki segudang saluran warna berbeda yang dibuat oleh raytracer specular atau instrumen ilmiah.

Meskipun saya telah memperlakukan piksel seolah-olah selalu berdampingan, juga memungkinkan saluran dipisah ke beberapa lokasi, seperti ini:

    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA

atau bahkan

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

atau memiliki RGB yang dikemas dan A disimpan dalam buffer terpisah.

Ini tidak biasa dalam data langsung dalam permainan, karena kartu grafis modern sering dirancang di sekitar piksel RGBA. RGB dapat ditangani secara seragam, dan dengan perhitungan cepat yang berdekatan dapat dilakukan yang memungkinkan pengomposisian piksel RGBA di atas latar belakang yang telah dicat sebelumnya.

Saluran alfa sering digunakan untuk informasi transparansi. Yang menjengkelkan, nilai maks alpha kadang-kadang diperlakukan sebagai transparan, dan kadang-kadang sebagai buram, dengan basis kode yang berbeda. Ini lagi kurang umum saat ini. Saluran Alpha juga telah digunakan untuk pemesanan z-buffer (seberapa jauh pixel dari penampil) untuk memungkinkan gambar yang tidak terurut ke sebuah adegan, dan pemetaan mip tradisional dilakukan dengan mendorong gambar beresolusi rendah 2x lebih kecil (atau 4x lebih sedikit piksel) ke dalam gambar. saluran alpha dari gambar beresolusi lebih tinggi, secara rekursif.

Bahkan dalam sistem yang menggunakan piksel RGBA, makna piksel ini dapat tidak setuju. Apakah R mengukur seberapa merah yang dilihat manusia, atau berapa foton merah yang harus dipancarkan? Ini adalah perbedaan antara ruang warna linier dan non-linier, dan ini berdampak pada cara yang benar untuk menggabungkan piksel tersebut dengan saluran transparansi.

Yakk
sumber