Что означает термин «канал» при использовании в отношении компьютерной графики?


16

Я изучал терминологию для компьютерной графики, и пришло это утверждение, которое смутило меня.

Изображение может иметь альфа-каналы для прозрачности.

Я попытался найти значение термина «альфа-канал», но меня действительно смутило определение, в котором использовалось другое понятие, называемое «канал». Я не совсем уверен, что это значит, так что, может, кто-нибудь проявит любезность и объяснит мне этот термин?

Ответы:


40

Цифровые цвета могут состоять из трех компонентов: красного, зеленого и синего. Объедините их вместе, и вы получите окончательный цвет, например. желтый - это 100% красный, 100% зеленый и 0% синий.

Четвертый компонент, как вы упомянули, прозрачность. Вместе они образуют кортеж RGBA(красный, зеленый, синий, альфа), который представляет изображение.

Теперь, вместо пикселей, подумайте об этом по-другому: что, если вы разделите изображение на четыре слоя? Вы можете разделить их так:

  • Все красные пиксели на одном слое
  • Все зеленые пиксели на одном слое
  • Все синие пиксели на одном слое
  • Значение, указывающее прозрачность на одном слое

Эти слои на самом деле называются «каналами». Вот как они выглядят на образце изображения:

введите описание изображения здесь

На этом изображении вы можете видеть только красные пиксели на красном канале; аналогично для зеленого и синего. Это все, что это означает - способ думать об изображениях как о «каналах» отдельных цветов, которые объединены вместе.


3
Отличный ответ, и спасибо за информацию. Мне нравится, как вы использовали изображения, чтобы объяснить концепцию.
Stync

1
Возможно, вы также захотите упомянуть другие цветовые системы, потому что используется не только
аддитивная система

4
Разве эти изображения на канал не должны иметь значения от нулевого (черного) до полного значения (например, красного) вместо черного-> красного-> белого (например), как показано? (Примерно так: f.cl.ly/items/2Q2C1z2s331f1T1U341G/images.png )
Слипп Д. Томпсон,

1
@ SlippD. Томпсон прав. В RGB белый цвет получается благодаря тому, что каждый цветовой канал имеет полную интенсивность, а это означает, что изображение ashes999 немного не соответствует правилам.
Алекс

4
Я выбрал эту картинку, потому что она иллюстративная. ОП кажется смущенным по поводу концепции. Объяснение концепции более просто казалось более важным, чем поиск точного изображения. Технически, это должно быть четыре слоя серой шкалы (как и было на моем первоначальном изображении), но это более запутанно.
ashes999

6

Термин происходит от определения «канал», который означает определенную часть частотного спектра. В этом случае красный, зеленый и синий компоненты цвета часто называют «каналами» (поскольку красный, зеленый и синий свет являются частями спектра видимого света).

Поскольку альфа является еще одним компонентом цвета в компьютерной графике (хотя он не связан строго с видимым светом, как другие), он также называется каналом.


4

Альфа-каналы были фактически изобретены компанией Джорджа Лукаса Industrial Light & Magic (фактически Элви Рэй Смит выполнил большую часть работы, работая там, ранее работавшей в Xerox PARC - которую мы можем поблагодарить почти за все в современных вычислениях!).

Альфа-каналы, в дополнение к выполнению крутых эффектов, таких как прозрачное окно, прозрачные градиенты и реалистичные тени, могут использоваться для операций с субпикселями. На самом деле, первоначальное использование было потому, что компьютерная графика в то время отстой. Чтобы наложить красиво сглаженное изображение на другой фон (или фон живого фильма), вы получите блочные края. Это не подходит для фильма, и попытка сглаживания изображений с фоном занимает слишком много процессорного времени. Итак ... края изображения сделаны полупрозрачными (альфа-канал). Это позволяет фону просвечивать с различной плотностью - смешивая цвета двух изображений вместе, чтобы сглаживать его. В наши дни это используется повсеместно, например, для рисования значков с гораздо более плавными краями, чем обычно позволяет разрешение - и вы этого не делаете

Альфа-каналы легко сделать аппаратно. Ранние машины для производства фильмов имели бит «genlock» (который был доступен на Amiga и некоторых машинах Atari), который был в основном выходным контактом, который переключался с компьютера на видео. Вывод управлялся битом «прозрачности» на выходе (обычно с «многоцветными» графическими режимами 5: 5: 5 для RGB и 1 бит для прозрачности = 16 бит / пиксель), что позволяло легко наложить сгенерированный компьютером контекст поверх живого видео без оцифровки видео. Позже это было изменено, чтобы быть аналоговым выходом с 8-битным ЦАП - поэтому вместо переключения между компьютером и живым видео, он смешал его - удаляя неприятные блочные края, которые использовала 1-битная техника. Аналоговый сглаживание!

Современные видеокарты могут хранить несколько слоев информации в памяти одновременно и использовать альфа-слой для смешивания нескольких уровней альфа-прозрачности в аппаратном обеспечении. Это делает ваши "спрайты" и другие объекты, которые должны быть сглаженными, выглядят хорошо. Вместо микширования с фиксированным фоновым цветом, сглаживание использует альфа-канал для микширования на лету. Конечно, вы можете делать все что угодно с альфа-каналом, но я надеюсь, что это даст вам старт. Чтобы узнать больше, попробуйте википедию.


Не могли бы вы предоставить какую-либо ссылку / цитату на тот факт, что AC был изобретен IL & M?

Хороший обзор самого Alvy в его блоге, здесь: alvyray.com/awards/AwardsAcademy96.htm . Это говорит о том, что его изобрели Элви Рэй и Эд Катмулл, когда они были в Нью-Йоркском университете. Оба позже основали Pixar.
МВЛ

Я забыл, где я первоначально читал это, но в википедии упоминается об этом
Эван Ланглуа,

3

Ни один из других примеров не объясняет, почему это альфа. Это из выражения в Alpha Compositing :

введите описание изображения здесь

где Ca и Cb - два значения входного цвета, а Co - выходной объединенный цвет.

Изменение альфа между 0 и 1 меняет цвет между передним и задним композитными изображениями.

(Обработка изображений также имеет "гамма", но не "бета", насколько я знаю)


2

Все изображения имеют 1 или более «каналов» информации. Например, знакомый тип изображения RGB имеет 3 канала информации: красный, зеленый и синий. То есть каждый пиксель в изображении имеет 3 числа, связанных с ним (если каждое число равно 8 битам, то это 24-битное изображение).

Альфа может добавить 4-й канал информации (4-й номер, связанный с каждым пикселем, и 32-битное изображение). Этот дополнительный канал может использоваться для различных целей, но наиболее распространенной целью является прозрачность.

Распространенными форматами файлов с альфа-каналами являются PNG и TGA.


2

Во многих форматах изображения пиксель определяется как вектор с 4 компонентами. RGB и альфа. В перспективе всего изображения вы можете выбрать только каждый компонент пикселя, и это дает ряд значений. Если вы хотите обработать только один компонент, вы можете выбрать компонент всех пикселей изображения, и это обычно называется каналом . Коллекция из одного компонента для всех пикселей. Тогда альфа-канал означает сбор альфа-компонента. Аналогичным образом, совокупность всех компонентов RGB можно назвать красным каналом, зеленым каналом и синим каналом.


2

Пиксель - это набор компонентов. Традиционно эти компоненты - красный, зеленый и синий, каждый из которых занимает 8 бит данных.

Поскольку часто бывает выгодно выровнять память определенным образом, они иногда упаковываются в 32-битное пространство каждый. Это оставляет 8 бит дополнительных данных в конце каждого пикселя. Поскольку это ни красный, ни зеленый, ни синий, ему нужно имя, а альфа была относительно бессмысленным именем.

Теперь, когда у вас есть массив пикселей, расположенных в прямоугольнике, вы получите это:

   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA
   RGBARGBARGBARGBA

иногда вы хотите говорить только об одном из цветов выше, скажем, красный:

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

этот подвыбор только одного элемента каждого пиксельного компонента называется «каналом» в изображении. Поскольку пиксели имеют 4 компонента, это изображение имеет 4 канала.

Есть другие форматы изображений, где нет альфа-канала:

   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB
   RGBRGBRGBRGB

и существуют форматы с различным количеством битов на компонент пикселя (3,5,8,16,32), а некоторые имеют неоднородные биты на компонент пикселя.

Канал становится «виртуальным» массивом только одного пиксельного компонента. (Я говорю виртуальный, потому что между каждым элементом есть шаг, в то время как массивы традиционно не имеют такого шага)

Часть RGB также не является фиксированной - у вас может быть изображение в оттенках серого с альфа-каналом или без него, у вас может быть изображение CMYK (Cyan Magenta Yellow blacK, обычно в субтрактивном цветовом пространстве), у вас может быть изображение, которое имеет целое множество различных цветовых каналов, созданных зеркальным следом луча или научным инструментом.

Хотя я рассматривал пиксели так, как будто они всегда смежные, возможно также разделить каналы на несколько мест, например так:

    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA
    RRRRGGGGBBBBAAAA

или даже

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

или RGB упакован и A хранится в отдельном буфере.

Это редко встречается в живых данных в играх, потому что современные видеокарты часто имеют пиксели RGBA. RGB может обрабатываться равномерно, и с помощью A можно выполнять быстрые вычисления, которые позволяют создавать пиксели RGBA поверх предварительно окрашенного фона.

Альфа-канал часто используется для прозрачности информации. Раздражает, что максимальное значение альфа иногда рассматривается как прозрачный, а иногда как непрозрачный, различными базами кода. Это снова менее распространено в наши дни. Альфа-канал также использовался для упорядочения z-буфера (как далеко пиксель от зрителя), чтобы позволить неупорядоченное рисование к сцене, и традиционно mip-отображение выполнялось путем помещения изображения с более низким разрешением в 2x 2x (или в 4 раза меньше пикселя) в альфа-канал изображения с более высоким разрешением, рекурсивно.

Даже в системе, использующей пиксели RGBA, значение этих пикселей может не совпадать. Измеряет ли R количество красного, которое видит человек, или сколько фотонов красного должно быть испущено? В этом разница между линейным и нелинейным цветовыми пространствами, и она влияет на правильный способ объединения указанных пикселей с каналом прозрачности.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.