Глубина цвета или цветовая глубина (см. различия в написании ), также известная как битовая глубина , — это либо количество бит, используемых для указания цвета одного пикселя , либо количество бит, используемых для каждого цветового компонента одного пикселя. Применительно к пикселю это понятие можно определить как биты на пиксель (bpp). Применительно к цветовому компоненту это понятие можно определить как биты на компонент , биты на канал , биты на цвет (все три сокращенно bpc), а также биты на компонент пикселя , биты на цветовой канал или биты на образец (bps). [1] [2] [3] Современные стандарты, как правило, используют биты на компонент, [1] [2] [4] [5] но исторические системы с меньшей глубиной чаще использовали биты на пиксель.
Глубина цвета — это только один аспект представления цвета, выражающий точность, с которой может быть выражено количество каждого основного цвета; другой аспект — насколько широк диапазон цветов, который может быть выражен (гамма ) . Определение как цветовой точности, так и гаммы выполняется с помощью спецификации кодирования цвета, которая назначает цифровое кодовое значение положению в цветовом пространстве .
Число бит разрешенной интенсивности в цветовом канале также известно как радиометрическое разрешение , особенно в контексте спутниковых изображений . [6]
При относительно низкой глубине цвета хранимое значение обычно представляет собой число, представляющее индекс в цветовой карте или палитре (форма векторного квантования ). Цвета, доступные в самой палитре, могут быть зафиксированы аппаратным обеспечением или изменены программным обеспечением. Изменяемые палитры иногда называют псевдоцветовыми палитрами.
Старые графические чипы, особенно те, что используются в домашних компьютерах и игровых консолях , часто имеют возможность использовать различную палитру для спрайтов и плиток , чтобы увеличить максимальное количество одновременно отображаемых цветов, минимизируя при этом использование дорогостоящей памяти (и пропускной способности). Например, в ZX Spectrum изображение хранится в двухцветном формате, но эти два цвета могут быть определены отдельно для каждого прямоугольного блока размером 8×8 пикселей.
Палитра сама по себе имеет цветовую глубину (количество бит на запись). В то время как лучшие системы VGA предлагали только 18-битную (262 144 цвета) палитру [7] [8] [9] [10], из которой можно было выбирать цвета, все цветное видеооборудование Macintosh предлагало 24-битную (16 миллионов цветов) палитру. 24-битные палитры практически универсальны для любого современного оборудования или формата файла, использующего их.
Если же цвет можно было бы напрямую вычислить из значений пикселей, то это «прямой цвет». Палитры редко использовались для глубины более 12 бит на пиксель, так как память, потребляемая палитрой, превышала бы необходимую память для прямого цвета на каждом пикселе.
2 цвета, часто черный и белый прямой цвет. Иногда 1 означал черный, а 0 — белый, инверсия современных стандартов. Большинство первых графических дисплеев были такого типа, X Window System была разработана для таких дисплеев, и это предполагалось для компьютера 3M . В конце 1980-х годов появились профессиональные дисплеи с разрешением до 300 точек на дюйм (как у современного лазерного принтера), но цвет оказался более популярным.
4 цвета, обычно из набора фиксированных палитр. Серые ранние NeXTstation , цветные Macintosh, Atari ST среднего разрешения.
8 цветов, почти всегда все комбинации полноинтенсивного красного, зеленого и синего. Многие ранние домашние компьютеры с телевизионными дисплеями, включая ZX Spectrum и BBC Micro .
16 цветов, обычно из набора фиксированных палитр. Используется IBM CGA (при самом низком разрешении), EGA и стандартом VGA с наименьшим общим знаменателем при более высоком разрешении. Цветные Macintosh, Atari ST с низким разрешением, Commodore 64 и Amstrad CPC также поддерживали 4-битный цвет.
32 цвета из программируемой палитры, используемой оригинальным чипсетом Amiga .
64 цвета. Используется в Master System , Enhanced Graphics Adapter, GIME для TRS-80 Color Computer 3, умных часах Pebble Time (64-цветный дисплей на электронной бумаге) и Parallax Propeller с использованием эталонной схемы VGA.
256 цветов, обычно из полностью программируемой палитры: большинство ранних цветных рабочих станций Unix, Super VGA , цветной Macintosh , Atari TT , чипсет Amiga AGA , Falcon030 , Acorn Archimedes . И X, и Windows предоставляли сложные системы, чтобы попытаться позволить каждой программе выбирать собственную палитру, что часто приводило к неправильным цветам в любом окне, кроме того, которое было в фокусе.
Некоторые системы помещали цветовой куб в палитру для системы прямого цвета (и поэтому все программы использовали одну и ту же палитру). Обычно предоставлялось меньше уровней синего, чем другие, поскольку нормальный человеческий глаз менее чувствителен к синему компоненту, чем к красному или зеленому (две трети рецепторов глаза обрабатывают более длинные волны [11] ). Популярные размеры были:
4096 цветов, обычно из полностью программируемой палитры (хотя часто устанавливался цветовой куб 16×16×16). Некоторые системы Silicon Graphics , цветные системы NeXTstation и системы Amiga в режиме HAM имеют такую глубину цвета.
RGBA4444, родственное 16-битное представление, обеспечивающее цветовой куб и 16 уровней прозрачности, является распространенным форматом текстур в мобильной графике.
В системах с высокой цветопередачей для каждого пикселя хранится два байта (16 бит). Чаще всего каждому компоненту (R, G и B) назначается 5 бит, плюс один неиспользуемый бит (или используемый для канала маски или для переключения на индексированный цвет); это позволяет представить 32 768 цветов. Однако альтернативное назначение, которое переназначает неиспользуемый бит каналу G, позволяет представить 65 536 цветов, но без прозрачности. [12] Эти глубины цвета иногда используются в небольших устройствах с цветным дисплеем, таких как мобильные телефоны, и иногда считаются достаточными для отображения фотографических изображений. [13] Иногда используются 4 бита на цвет плюс 4 бита для альфа, что дает 4096 цветов. Среди первых аппаратных средств, использовавших этот стандарт, были Sharp X68000 и Extended Graphics Array (XGA) от IBM .
Термин «высокая цветность» в последнее время используется для обозначения глубины цвета более 24 бит.
Почти все наименее дорогие ЖК-дисплеи (например, типичные скрученные нематические типы) обеспечивают 18-битный цвет (64×64×64 = 262 144 комбинаций) для достижения более быстрого времени перехода цветов и используют либо сглаживание , либо управление частотой кадров для приближения к истинному цвету 24 бита на пиксель [14] или полностью отбрасывают 6 бит цветовой информации. Более дорогие ЖК-дисплеи (обычно IPS ) могут отображать глубину цвета 24 бита или больше.
24 бита почти всегда используют по 8 бит каждого из R, G и B (8 бит на канал). По состоянию на 2018 год 24-битная глубина цвета используется практически каждым дисплеем компьютера и телефона [ необходима ссылка ] и подавляющим большинством форматов хранения изображений . Почти во всех случаях 32 бита на пиксель назначают 24 бита цвету, а оставшиеся 8 являются альфа-каналом или неиспользуемыми.
2 24 дает 16 777 216 цветовых вариаций. Человеческий глаз может различать до десяти миллионов цветов, [15] и поскольку цветовая гамма дисплея меньше, чем диапазон человеческого зрения, это означает, что он должен охватывать этот диапазон с большей детализацией, чем может быть воспринято. Однако дисплеи неравномерно распределяют цвета в пространстве человеческого восприятия, поэтому люди могут видеть изменения между некоторыми соседними цветами как цветовые полосы . Монохромные изображения устанавливают все три канала на одно и то же значение, в результате чего получается всего 256 различных цветов; некоторое программное обеспечение пытается размывать уровень серого в цветовых каналах, чтобы увеличить это, хотя в современном программном обеспечении это чаще используется для субпиксельной визуализации, чтобы увеличить разрешение пространства на ЖК-экранах, где цвета имеют немного разные позиции.
Стандарты DVD-Video и Blu-ray Disc поддерживают глубину цвета 8 бит на цвет в YCbCr с цветовой субдискретизацией 4:2:0 . [16] [17] YCbCr можно преобразовать в RGB без потерь.
MacOS называет 24-битный цвет «миллионами цветов». Термин true colour иногда используется для обозначения того, что в этой статье называется direct colour . [18] Он также часто используется для обозначения всех глубин цвета, больших или равных 24.
Глубокий цвет состоит из миллиарда или более цветов. [19] 2 30 — это 1 073 741 824. Обычно это по 10 бит красного, зеленого и синего (10 бит на канал). Если добавить альфа-канал того же размера, то каждый пиксель займет 40 бит.
Некоторые более ранние системы помещали три 10-битных канала в 32-битное слово , при этом 2 бита не использовались (или использовались как 4-уровневый альфа-канал ); например, формат файла Cineon использовал это. Некоторые системы SGI имели 10- (или более)-битные цифро-аналоговые преобразователи для видеосигнала и могли быть настроены на интерпретацию данных, сохраненных таким образом, для отображения. Файлы BMP определяют это как один из своих форматов, и Microsoft называет его «HiColor» .
Видеокарты с 10 битами на компонент начали появляться на рынке в конце 1990-х годов. Ранним примером была карта Radius ThunderPower для Macintosh, которая включала расширения для плагинов QuickDraw и Adobe Photoshop для поддержки редактирования 30-битных изображений. [20] Некоторые поставщики называют свои панели с глубиной цвета 24 бита с FRC 30-битными панелями; однако дисплеи с настоящим глубоким цветом имеют глубину цвета 10 бит или более без FRC.
Спецификация HDMI 1.3 определяет глубину цвета в 30 бит (а также глубину цвета в 36 и 48 бит). [21] В связи с этим видеокарты Nvidia Quadro, выпущенные после 2006 года, поддерживают глубину цвета в 30 бит [22] и карты GeForce и Titan Pascal или более поздние версии при использовании с драйвером Studio [23] , как и некоторые модели серии Radeon HD 5900, такие как HD 5970. [24] [25] Видеокарта ATI FireGL V7350 поддерживает 40- и 64-битные пиксели (глубину цвета 30 и 48 бит с альфа-каналом). [26]
Спецификация DisplayPort также поддерживает глубину цвета более 24 бит/пиксель в версии 1.3 посредством « VESA Display Stream Compression , которая использует алгоритм с малой задержкой и визуальными потерями, основанный на предиктивной DPCM и цветовом пространстве YCoCg-R, и позволяет увеличить разрешение и глубину цвета, а также снизить энергопотребление». [27]
На WinHEC 2008 компания Microsoft объявила, что в Windows 7 будет поддерживаться глубина цвета 30 бит и 48 бит , а также широкая цветовая гамма scRGB . [28] [29]
Высокоэффективное кодирование видео (HEVC или H.265) определяет профиль Main 10, который допускает 8 или 10 бит на выборку с цветовой субдискретизацией 4:2:0 . [2] [4] [5] [30] [31] Профиль Main 10 был добавлен на встрече HEVC в октябре 2012 года на основе предложения JCTVC-K0109, в котором предлагалось добавить 10-битный профиль в HEVC для потребительских приложений. [5] В предложении говорилось, что это должно было обеспечить улучшение качества видео и поддержку цветового пространства Rec. 2020 , которое будет использоваться UHDTV . [5] Вторая версия HEVC имеет пять профилей, которые допускают битовую глубину от 8 до 16 бит на выборку. [32]
С 2020 года некоторые смартфоны начали использовать 30-битную глубину цвета, например, OnePlus 8 Pro , Oppo Find X2 и Find X2 Pro, Sony Xperia 1 II , Xiaomi Mi 10 Ultra , Motorola Edge+ , ROG Phone 3 и Sharp Aquos Zero 2. [ требуется цитата ]
Использование 12 бит на цветовой канал дает 36 бит, 68 719 476 736 цветов. Если добавить альфа-канал того же размера, то получится 48 бит на пиксель.
Использование 16 бит на цветовой канал дает 48 бит, 281 474 976 710 656 цветов. Если добавить альфа-канал того же размера, то получится 64 бита на пиксель.
Программное обеспечение для редактирования изображений, такое как Adobe Photoshop, довольно рано начало использовать 16 бит на канал, чтобы уменьшить квантизацию промежуточных результатов (т. е. если операция делится на 4, а затем умножается на 4, то будут потеряны нижние 2 бита 8-битных данных, но если использовать 16 бит, то не будут потеряны ни одного из 8-битных данных). Кроме того, цифровые камеры способны создавать 10 или 12 бит на канал в своих необработанных данных; поскольку 16 бит — это наименьшая адресуемая единица, превышающая это значение, ее использование облегчит обработку необработанных данных.
Некоторые системы начали использовать эти биты для чисел вне диапазона 0–1, а не для увеличения разрешения. Числа больше 1 были для цветов ярче, чем мог отобразить дисплей, как в визуализации с высоким динамическим диапазоном (HDRI). Отрицательные числа могут увеличить гамму, чтобы охватить все возможные цвета, и для хранения результатов операций фильтрации с отрицательными коэффициентами фильтра. Pixar Image Computer использовал 12 бит для хранения чисел в диапазоне [-1,5, 2,5), с 2 битами для целой части и 10 для дробной. Система визуализации Cineon использовала 10-битные профессиональные видеодисплеи с видеооборудованием, настроенным таким образом, что значение 95 было черным, а 685 — белым. [33] Усиленный сигнал имел тенденцию сокращать срок службы ЭЛТ.
Больше бит также способствовало хранению света в виде линейных значений, где число напрямую соответствует количеству излучаемого света. Линейные уровни значительно упрощают расчет компьютерной графики. Однако линейный цвет приводит к непропорционально большему количеству образцов вблизи белого и меньшему количеству вблизи черного, поэтому качество 16-битного линейного цвета примерно равно 12-битному sRGB .
Числа с плавающей точкой могут представлять линейные уровни освещенности, разносящие образцы полулогарифмически. Представления с плавающей точкой также допускают значительно большие динамические диапазоны, а также отрицательные значения. Большинство систем сначала поддерживали 32-битную одинарную точность на канал , что намного превышало точность, требуемую для большинства приложений. В 1999 году Industrial Light & Magic выпустила открытый стандартный формат файла изображения OpenEXR , который поддерживал 16-битные на канал числа с плавающей точкой половинной точности . При значениях около 1,0 значения с плавающей точкой половинной точности имеют только точность 11-битного целого значения, что привело к тому, что некоторые специалисты по графике отказались от половинной точности в ситуациях, когда расширенный динамический диапазон не нужен.
Практически все телевизионные и компьютерные дисплеи формируют изображения, изменяя интенсивность всего трех основных цветов : красного, зеленого и синего. Например, ярко-желтый цвет формируется примерно равными долями красного и зеленого, без доли синего.
Для хранения и обработки изображений существуют альтернативные способы расширения традиционного треугольника: можно преобразовать кодирование изображений для использования фиктивных основных цветов, которые физически невозможны, но которые имеют эффект расширения треугольника, чтобы охватить гораздо большую цветовую гамму. Эквивалентное, более простое изменение заключается в том, чтобы разрешить отрицательные числа в цветовых каналах, так что представленные цвета могут выходить за пределы цветового треугольника, образованного основными цветами. Однако они расширяют только цвета, которые могут быть представлены в кодировке изображения; ни один из трюков не расширяет гамму цветов , которые фактически могут быть отображены на устройстве отображения.
Дополнительные цвета могут расширить цветовую гамму дисплея, поскольку она больше не ограничивается внутренней частью треугольника, образованного тремя основными цветами в его углах, например, цветовым пространством CIE 1931. Последние технологии, такие как BrilliantColor от Texas Instruments , дополняют типичные каналы красного, зеленого и синего тремя другими основными цветами: голубым, пурпурным и желтым. [34] Голубой будет обозначен отрицательными значениями в красном канале, пурпурный — отрицательными значениями в зеленом канале, а желтый — отрицательными значениями в синем канале, подтверждая использование в противном случае фиктивных отрицательных чисел в цветовых каналах.
Mitsubishi и Samsung (среди прочих) используют BrilliantColor в некоторых своих телевизорах для расширения диапазона отображаемых цветов. [ требуется цитата ] Линейка телевизоров Sharp Aquos представила технологию Quattron , которая дополняет обычные пиксельные компоненты RGB желтым субпикселем. Однако форматы и носители, которые позволяют или используют расширенную цветовую гамму , в настоящее время крайне редки. [ требуется цитата ]
Поскольку люди в подавляющем большинстве являются трихроматами или дихроматами [b], можно было бы предположить, что добавление четвертого «основного» цвета не принесет никакой практической пользы. Однако люди могут видеть более широкий диапазон цветов , чем может отобразить смесь трех цветных огней. Дефицит цветов особенно заметен в насыщенных оттенках сине-зеленого (показано как левая верхняя серая часть подковы на диаграмме) дисплеев RGB: Большинство людей могут видеть более яркие сине-зеленые цвета, чем может отобразить любой цветной видеоэкран.