Глубина́ цве́та (ка́чество цветопереда́чи, би́тность изображе́ния) — это термин компьютерной графики, означающий количество бит, используемых для представления цвета при кодировании одного пикселя растровой графики или видео framebuffer-а[1]. Это понятие также известно, как bits per pixel (bpp) задающее точное количество используемых бит для представления цвета.
Содержание |
Возможные варианты представления цветовых палитр:
С увеличением количества бит в представлении цвета, количество отображаемых цветов стало становиться непрактично-большим для цветовых палитр (20-битная глубина цвета требует больше памяти для сохранения цветовой палитры, чем памяти для сохранения самих пикселей изображения). При большой глубине цвета на практике обычно кодируют яркости красной, зелёной и синей составляющих — такое кодирование обычно называют RGB-моделью.
Сильно ограниченная, однако «реальная» цветовая схема, в которой 3 бита (8 возможных значений) для красной (R) и зелёной (G) составляющих, и два оставшихся бита на пиксель для кодирования синей (B) составляющей (4 возможных значения), позволяют представить 256 (8 × 8 × 4) различных цвета. Нормальный человеческий глаз менее чувствителен к синей составляющей, чем к красной и зелёной, поэтому синяя составляющая представляется одним битом меньше. Такая схема использовалась в MSX2-серии компьютеров в 1990-х.
Не следует путать такую схему с 8bpp индексным цветом, который может быть представлен выбором различных цветовых палитр.
12-битный «реальный» цвет кодируется 4 битами (16 возможных значений) для каждой R, G и B-составляющих, что позволяет представить 4096 (16×16×16) различных цветов. Такая глубина цвета иногда используется в простых устройствах с цветными дисплеями (например, в мобильных телефонах).
Highcolor или HiColor разработан для представления оттенков «реальной жизни», то есть наиболее удобно воспринимаемый человеческим глазом. Такой цвет кодируется 15 или 16 битами:
Некоторые современные LCD-дисплеи отображают 18-битный цвет (64×64×64 = 262 144 комбинаций) для достижения больших скоростей при передаче визуальных данных без использования truecolor-дисплеев.
TrueColor приближен к цветам «реального мира», предоставляя 16,7 миллионом различных цветов. Такой цвет наиболее приятен для восприятия человеческим глазом различных фотографий, для обработки изображений для некоторых чёрно-белых изображений.
«32-битный цвет» это пример неправильного употребления термина при описании глубины цвета. Заблуждением является то, что 32-битный цвет позволяет представить 4 294 967 296 различных оттенка.
В реальности 32-битный цвет является 24-битным (Truecolor) с дополнительным 8-битным каналом, который либо заполнен нулями (пустотой), либо представляет Альфа-канал, который задаёт прозрачность изображения в определённых пикселях.
Причиной, при которой может быть использован «пустой» канал — является 32-битная адресация памяти и 32-битные шины данных большинства современных компьютеров при оптимизации обращения к видеопамяти.
В конце 1990-х некоторые high-end графические системы, например SGI начали использовать более 8 бит на канал, например 12- или 16-бит. Разумеется такое количество оттенков при отображении цветов не является востребованным, однако программы профессионального редактирования изображений стали сохранять по 16 бит на канал, предоставляя «защиту» от накапливания ошибок округления, погрешностей при вычислении в условиях ограниченной разрядной сетки чисел.
Для расширения динамического диапазона изображений, включая High Dynamic Range Imaging (HDRI), числа с плавающей запятой позволяют описывать в изображениях наиболее аккуратно интенсивный свет и глубокие тени в одном и том же цветовом пространстве. Различные модели описывают такие диапазоны, применяя более 32 бит на канал. Можно отметить новый Industrial Light & Magic (ILM) формат, использующий 16-битные числа с плавающей запятой, которые позволяют представить цветовые оттенки лучше, чем 16-битные целые числа. Предполагается, что такие схемы представления цвета заменят стандартные схемы, как только аппаратное обеспечение сможет с достаточной скоростью и эффективностью поддерживать новые форматы.
Множество современых телевизоров и компьютерных дисплеев отображают изображения варьируя интенсивностью трёх основных цветов: синий, зелёный и красный. Яркий жёлтый, например, является композицией одинаковых по интенсивности красной и зелёной составляющих без добавления синей компоненты. Однако это только приближение, которое не даёт в действительности яркий жёлтый цвет. Именно поэтому последние технологии, как например Texas Instruments BrilliantColor расширяют типовые красные, зелёные и синие каналы новыми: голубым (сине-зелёным), пурпурным и желтым цветами[2]. Mitsubishi и Samsung используют упомянутую технологию в некоторых телевизионных системах.
Подразумевая использование 8-битных каналов 6-цветные изображения кодируются 48-битными цветами.
ATI FireGL V7350 видеоадаптеры поддерживают 40- и 64-битные цвета[3].