В чем разница между цветовым пространством и битовой глубиной?

Я знаю, что существуют разные типы цветового пространства , и наиболее распространенным является sRGB. Битовая глубина определяет вариации цветового канала, где (я думаю) наиболее распространены 8 и/или 16 бит.

Некоторые могут сказать, что они совершенно разные, а другие могут сказать, что они не исключают друг друга.

Кто-нибудь может объяснить различия? Если вы увеличиваете битовую глубину, почему вы также не увеличиваете цветовое пространство?

Ответы (5)

По сути, информация о жизненном цвете похожа на коробку шоколадных мелков...

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

Думайте о цветовом пространстве как о коробке с мелками разных цветов. Цветовое пространство описывает доступные типы мелков. Подумайте о «смелых цветах», «пастельных тонах» и т.п. Битовая глубина описывает количество мелков.

Вот пример двух разных коробок с мелками:

коробки для карандашей

У обоих есть 16 мелков, но у них разный диапазон цветов — в частности, нижний набор не распространяется так далеко на красный. Поскольку существует 16 цветов, это 4 бита глубины цвета (2⁴ = 16).

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

Верхнее цветовое пространство поначалу кажется явно превосходящим (нижним даже что-то красное не нарисуешь!), но рассмотрим ситуацию, когда вы рисуете пейзаж с небом, водой и деревьями. Нижний набор мелков на самом деле может быть намного лучше, потому что он использует больше своих «битов» для представления тонких оттенков зеленого и синего.

Если вместо. вы купили одинаковые цветовые диапазоны в наборах из 64 мелков, между каждым существующим было бы три новых мелка. В нижнем наборе по-прежнему будет больше вариантов синего и зеленого, но из-за новых мелков верхний набор также будет иметь гораздо больше вариантов в этом диапазоне, чем набор из 16 мелков. Так как верхний набор также покрывает красный цвет, с достаточным количеством мелков было бы объективно лучше.

Однако можно представить себе выбор, когда в обеих коробках чего-то не хватает. Немного легче увидеть, как это могло бы быть, если мы перейдем к немного более сложной визуализации, здесь реального sRGB (как телевизор или монитор компьютера потребительского уровня) и стандартных чернил CMYK «SWOP»:

CMYK SWOP против RGB — изображение сделано мной, линии приблизительны

Здесь вы можете видеть, что цветовое пространство CMYK SWOP¹ распространяется дальше на голубой, пурпурный/фиолетовый и желтый, чем может быть представлено в sRGB. Даже если мы добавим больше битов, чтобы различать доступные различимые шаги, цветовое пространство определяет границу . Точно так же добавление большего количества битов к представлению CMYK не помогает представить дальние углы красного, зеленого и синего, покрытые sRGB. (И, конечно же, все они являются плохим представлением гаммы человеческого зрения, представленной внешней формой — если вы когда-нибудь задумывались, почему так сложно сделать цифровые фотографии зелени естественными, это часть истории. !)

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

Фактически, некоторые «широкие» цветовые пространства, такие как ProPhoto RGB, имеют цвета на краю пространства, которые не соответствуют ничему в человеческом зрении . Это теоретические, «воображаемые» цвета, которые заставляют работать цветовое пространство, но фактически тратятся впустую. Когда вы используете такое цветовое пространство с небольшим количеством мелков (низкая битовая глубина), у вас меньше вариантов для действительно полезных цветов, что делает возможность пропуска шагов более серьезной проблемой. Что-то вроде sRGB не может покрыть далекие голубые и зеленые цвета (точно так же, как отсутствующий красный в наборе выше), но взамен вы получаете более четкое различие между синими, пурпурными и красными (и зелеными, которые там есть).

Если мы перейдем к 16 битам на канал (всего 48 бит), между каждым оттенком в коробке будет 16,8 миллиона дополнительных «мелков» . Это полное излишество (как в том, что люди могут различить, так и в практической реальности представления этой тонкой разницы на экране или в печати), но это излишество гарантирует, что плавные переходы всегда доступны. А так как в реальной жизни все цветовые пространства примерно спроектированы так, чтобы покрывать человеческое зрение (даже если они не совпадают точно), вы не столкнетесь с ситуацией, когда в вашем цветовом пространстве вообще нет красного цвета он просто может быть не столь глубоким или тонким.

Еще одна вещь, которую стоит учитывать, это то, что sRGB предназначен не только для достойного соответствия человеческому зрению, но и для представления на большинстве потребительских устройств , и это предположение по умолчанию для дисплеев без управления цветом. Это означает, что когда вы используете sRGB, у вас больше всего шансов, что используемые вами «мелки» будут соответствовать «мелкам», которые используют устройства ваших зрителей. Вот почему я рекомендую сохранять в sRGB для просмотра и публикации в Интернете .— более высокая битовая глубина не является широко распространенным вариантом, и у большинства людей нет возможности заменить его на набор мелков по вашему выбору. (Надеюсь, в будущем это станет лучше, но на самом деле это не кажется приоритетом для производителей потребительских устройств. Возможно, когда шумиха вокруг 3D и 4K уляжется, мы сможем больше внимания уделять «глубокому цвету» — более высокой битовой глубине для потребительские дисплеи.

(Часть этого заимствована из моего более раннего ответа на Как перекрываются цветовые пространства, такие как sRGB и Adobe RGB? )


Сноска

1. Этот конкретный пример является чрезмерным упрощением и затушевывает реальное представление изображений CMYK и некоторые другие детали; тем не менее, это хороший пример, потому что большинство реальных цветовых пространств предназначены для максимально возможного перекрытия, и это показывает что-то, что имеет несоответствие.

ХОРОШО. Итак, скажем, верхнее цветовое пространство (верхний ряд мелков) имеет двойную разрядность нижнего, теоретически оно может охватывать все цвета/оттенки, как и нижнее? Однако, если оба одинаковы по разрядности, то нет. Он не может покрывать одни и те же цвета/оттенки. Итак, даже если вы не меняете цветовое пространство, увеличение битовой глубины (цветового пространства) может охватывать те же цвета, что и другое цветовое пространство?
@BBking Ну, это трехмерная, а не одномерная линия, которую дает пример с карандашом, но в любом случае вопрос покрытия в основном связан с крайностями. Посмотрите на вторую строку — добавление большего количества битов не добавит красных крайностей. Но если пойти другим путем, да, из-за того, как я его построил, достаточно больше битов в верхней части заставит его покрыть больше цветов — он не будет точно таким же, но все равно будет более плавным градиентом. Если вы перейдете к более чем 2×, верхний ряд будет надмножеством нижнего.
Однако я мог бы сконструировать нижнюю строку так, чтобы она простиралась в направлении, которое не покрывает верхняя строка — может случиться так, что крайние значения не перекрываются, и никакое количество добавляемых битов не изменит этого. (Дополнительную информацию см. в [перекрывающемся вопросе .)
Я понимаю. Теперь я не знаю, должен ли я изменить ваш ответ... :/
@BBking Ну, дайте мне знать, что еще может быть более ясным! :)
Я думаю, чтобы действительно упростить это, скажем, у вас есть литры краски (например, мелки). Цветовое пространство означает, что у вас есть только один из этих цветов. Однако, если вы хотите сделать разные цвета из этих доступных цветов, высокая битовая глубина позволит вам добавлять 1 мл за раз, а более низкая битовая глубина позволит вам добавлять, скажем, 5 мл за раз? Итак, хотя более высокая битовая глубина может позволить вам достичь большего количества цветов, это все еще только при смешивании одних и тех же цветов вместе?
Кроме того, означает ли это, что не имеет значения, сколько цвета вы добавите в это цветовое пространство, вы никогда не сможете выйти за его пределы?
Важно, чтобы это были мелки, а не смешивание жидких красок, потому что это буквально исчисляемые дискретные шаги. Я думаю, что вы собираетесь использовать 1 мл за раз против 5 мл за раз, но я думаю, что возможность смешивания немного сбивает с толку. Не беспокойтесь о микшировании — количество бит буквально определяет общее число возможных вариантов .
Но если мы вернемся к идее смешивания, да, именно поэтому цветовые пространства ограничены таким образом в реальном мире. Набор цветов, которые вы можете сделать, определяется ограничениями того, что вы используете для их создания. Если ваши красные пиксели становятся только такими красными, нет никакого способа стать краснее, чем это. Так что, просто подумайте об этом аспекте, и если вы можете гарантировать, что ваша битовая глубина означает, что у вас есть нижний предел измерений микширования, ваша аналогия со смешиванием краски работает.
Изменил ответ из-за иллюстраций.
Я получил уведомление о том, что его просмотрели 2500 раз, и я получил за это кое-что. Что вернуло меня сюда. Вот почему это заняло так много времени!

Битовая глубина и цветовое пространство — это не одно и то же, и они не исключают друг друга. Это разные вещи, существующие одновременно. Для особенно простого объяснения:

  • Битовая глубина определяет точность , с которой оценивается каждый отдельный цвет .

  • Цветовое пространство определяет степень , в пределах которой распределяются эти цвета .

В качестве цветовых пространств возьмем sRGB и AdobeRGB, а в качестве битовой глубины — 8-битный и 16-битный цвет. sRGB — это небольшое цветовое пространство, а AdobeRGB — это более широкое цветовое пространство. Цветовые пространства, или гаммы, определяют степень, в которой цвета могут быть выбраны из всего диапазона цветов, видимого человеческому глазу (или даже за пределами этого диапазона, как в случае с ProPhotoRGB или некоторыми из новых 10-битных цветов). телевизионные гаммы). Если вы сопоставите цвет «чистый зеленый» в sRGB, этот цвет действительно будет численно чистым зеленым ... однако он может быть не самым точным для восприятия чистым зеленым цветом. Карта того же цвета «Чистый зеленый» — это AdobeRGB, и хотя численно это тот же зеленый цвет, при отображении в AdobeRGB он более насыщенный и яркий. (Далее отобразите тот же цвет в ProPhotoRGB, и он снова будет даже более насыщенным, чем в AdobeRGB... при условии, конечно, что

Теперь приходит битовая глубина. Разница между Pure Green в 8-битном и 16-битном режиме составляет 0,255,0 против 0,65535,0. Для описания зеленого канала в чистом зеленом цвете в 16-битном цвете используется гораздо большее число, чем в 8-битном цвете. Если мы добавим средне-зеленый, значение в 8-битном формате может быть 0,128,0, а в 16-битном — 0,32768,0. Тот же цвет, но количество различных цветов в диапазоне между чистым зеленым и средне-зеленым намного выше при 16-битном цвете. У вас есть в общей сложности 32768 различных уровней зеленого между этими двумя уровнями в 16-битном режиме, по сравнению с простыми 128 различными уровнями в 8-битном. Допустим, мы выбираем светло-зеленый, скажем, 0,192,0 в 8-битном формате. Тот же самый цвет будет 0,49152,0 в 16-битном формате. Это увеличение количества потенциально отчетливых цветов означает, что градиенты становятся значительно более плавными и четко очерченными при использовании более высокой разрядности.

Наконец, как взаимодействуют битовая глубина и цветовое пространство? С узкой гаммой, такой как sRGB, у вас есть ограниченное цветовое пространство, в котором можно отображать разные цвета. Благодаря sRGB и 8-битному цвету каждый цвет будет действительно различимым при переходе от 0,1,0 через 0,128,0 до 0,255,0. Что произойдет, если у вас есть 16-битное изображение в пространстве sRGB? Численно ваше изображение может представлять более 280 триллионов различных цветов (16+16+16 бит — это всего 48 бит, 2^48 — это 281,5 триллиона). Восприятие... когда числовые значения RGB сопоставляются с цветами с ограниченной гаммой, значительная часть этих 280 триллионов цветов в конечном итоге будет сопоставлена ​​с одной и той же «цветовой координатой» в цветовом пространстве. Ваш файл изображения по-прежнему содержит данные о цвете с полной точностью, однако, когда он отображается на экране (или отображается для печати),

Если мы перейдем к AdobeRGB, гамма увеличится, это будет более широкое цветовое пространство и, следовательно, может охватывать большее количество различных цветовых отображений. С 8-битной глубиной цвета вы фактически будете редко отображать эту большую гамму. С технической точки зрения, гамма способна описывать больше цветов, чем позволяет ваша битовая глубина. Ваши ограничивающие факторы теперь поменялись местами... вместо ограничивающей гаммы ограничивающей является битовая глубина. Если мы перейдем к 16-битному цвету в цветовом пространстве AdobeRGB, у наших 280 триллионов потенциальных цветов будет больше места для ссылки на разные цвета. Вполне вероятно, что несколько цветов по-прежнему будут отображаться в одних и тех же фактических координатах в пространстве AdobeRGB, однако в этом большем пространстве будет гораздо меньше коллизий, чем в sRGB.

Таким образом, хотя цветовое пространство/гамма и битовая глубина — разные вещи, они взаимосвязаны. Вы не обязаны использовать большую гамму при использовании более высокой битовой глубины для хранения данных изображения, однако рекомендуется получить максимальную отдачу от этой более высокой битовой глубины. И наоборот, если вы сохраняете изображения с более низкой битовой глубиной, зачастую рендеринг этих изображений с чем-либо большим, чем sRGB, менее полезен.

Чтобы в полной мере воспользоваться преимуществами информации о цвете с высокой битовой глубиной в файле изображения, более крупные гаммы и одновременно более качественные экраны, которые действительно могут отображать эти гаммы, становятся ценными. Для воспроизведения 10-, 12- и 16-битного цвета на экранах телевизоров или компьютеров часто необходимы гаммы, превышающие AdobeRGB и даже больше, чем ProPhotoRGB, чтобы в полной мере использовать возможности человеческого визуального восприятия. Наши глаза — удивительные устройства, обладающие невероятным динамическим диапазоном и чрезвычайно широкой цветовой чувствительностью. Современные 10-битные экраны с 12-, 14- и 16-битными аппаратными LUT (трехмерными таблицами поиска цветов) способны отображать 1,07 миллиарда одновременных цветов, выбранных из 68,7 миллиарда (12-бит), 4,4 триллиона цветов. (14-бит) или 281,5 триллиона (16-бит) цветов, которые очень точно описываются LUT.

«Разница между Pure Green в 8-битном и 16-битном режимах составляет 0,255,0 против 0,65535,0». Идеальный! Это заставило меня понять намного лучше.
Цветовое пространство — это не просто «протяженность» (гамма); он охватывает всю топологию цветов в пространстве. Рассмотрим цветовые пространства, отличные от RGB, такие как YUV, HSL (часто представляемые в виде цилиндра, а не куба), CMYK (четырехмерное пространство) и т. д.
@Jason: Термин «протяженность» работает для трехмерных пространственных объектов. Это не означает просто двумерный экстент, такой как треугольник, наложенный поверх графика полной яркости/насыщенности пространства Lab. Экстент означает всю протяженность цветового пространства во всех трех измерениях, независимо от фактической формы, которую принимает эта протяженность. Я бы также сказал, что sRGB, AdobeRGB и т. д. — это цветовые пространства, тогда как RGB, YUV, HSL, CMYK и т. д. — это цветовые модели, а не цветовые пространства. Цветовые пространства ЯВЛЯЮТСЯ 3D, но, как правило, они имеют странную ромбовидную форму, они никогда не бывают цилиндрическими или кубическими.
Вы говорите, что 0,255,0 будет чисто зеленым. Так будет ли 255 255,0 чисто зеленым и чисто красным, будучи «чисто» желтым?
С числовой точки зрения да. С точки зрения рендеринга это зависит от цветового пространства. ;)
ХОРОШО. В примере, который использует mattdm, скажем, 255 255,0 было отображено в цветовом пространстве, в котором не было красного. Как бы это выглядело?
Используя примеры цветов Мэтта, он, вероятно, окажется ярко-желтым (255,255,0), так как это самый близкий жизнеспособный вариант. Если вы имеете в виду (255,0,0), то он будет оранжевым. Существуют различные способы рендеринга, которые можно использовать при сопоставлении числовых значений цвета с координатами цветового пространства: Абсолютный, Относительный, Насыщенность, Перцепционный. В зависимости от намерения точный цветовой результат («рендеринговый» цвет) будет немного (или, может быть, сильно, действительно зависит от цветового пространства и профиля ICC) отличаться.

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

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

Теперь, когда вы говорите о битовой глубине, используемой в файловых форматах, ситуация усложняется, потому что не все шаги имеют размер, потому что битовая глубина неравномерно распределена в линейном смысле. Иногда шаги следуют кривой, основанной на принципах, гамма-кривой или логарифмической кривой.

Как правило , если вы увеличиваете битовую глубину, вы получаете больше градаций в цветовом пространстве, но его границы остаются прежними. Однако существуют форматы файлов HDR, в которых используются значения с плавающей или фиксированной точкой, которые могут быть даже отрицательными для представления цветов вне специального цветового пространства.

Думаю, я все еще на том же уровне понимания. Ваша аналогия со зданием смутила меня еще больше. Если бы вы сказали, что цветовое пространство похоже на количество уровней в здании (каждый уровень представляет цвет), тогда как шаги в здании могут быть битовой глубиной. Таким образом, в одном и том же цветовом пространстве вы можете иметь разную глубину цвета. Если здание выполнено в формате sRGB с 8-битным шагом, у него будет меньше цветовых деталей, чем в здании с 16-битным шагом sRGB. Однако увеличение разрядности увеличивает размер здания. Поэтому меняется (но не сильно) цветовое пространство???
@BBking: Это не совсем правильно. Эти два не связаны таким образом. Размер здания не должен измениться, если вы перейдете к 16 ступеням, потому что вы можете сделать ступени ближе друг к другу, чем когда у вас всего 8 ступеней. Разрядность — это близость ступеней, а цветовое пространство — это размер здания. Я добавил ответ, который может помочь.
Обратите внимание, что цветовое пространство по своей сути не представляет все возможные цвета, большинство из них этого не делает. Или вы хотели сказать что-то вроде «цветовое пространство X описывает набор возможных цветов в X»?
@BBking Увеличение разрядности в том же цветовом пространстве не увеличивает размер здания. Это уменьшает расстояние между каждой ступенькой на лестнице. От одного этажа до другого по-прежнему 21,25 фута, но теперь лестница имеет 65 536 ступеней, каждая из которых всего на 1/256 дюйма выше, чем предыдущая, тогда как с 8-битной версией у вас было 256 ступенек высотой в один дюйм каждая. . Так что вторая лестница больше похожа на гладкий пандус, чем первая. Увеличение битовой глубины делает непрерывные тона более плавными.

Давайте попробуем простой пример. Допустим, у нас есть цветовое пространство под названием «радуга». Он содержит цвета радуги, поэтому состоит из красного, оранжевого, желтого, зеленого, синего и фиолетового. Цветовое пространство описывает диапазон цветов, охватываемых гаммой.

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

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

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

Дополнительные биты для расширения цветового пространства, которое вы охватываете, дают более точное управление цветами в цветовом пространстве или делают некоторую комбинацию двух.

Простой способ думать о таких вещах состоит в том, что цветовые пространства — это контейнеры. Они содержат значения цвета цветового пространства, для которого они были созданы. Если это цветовые пространства RGB, значения для каждого канала равны RGB-0-255. Если значения CMYK 0-100.

Эти значения не изменяются, если изменяется объем цветового пространства. Что изменяет объем цветового пространства, так это значения CIEXYZ, которые определяют это пространство. Цветовое пространство большего объема обычно может содержать более насыщенные цвета. Примером этого является sRGB, маленькое цветовое пространство по объему, и ProPhoto, большое цветовое пространство по объему. Открытие изображения sRGB в Photoshop дает ожидаемый результат, но затем назначение профиля ProPhoto ICC резко меняет цвет изображения и делает его более насыщенным, но значения RGB не изменились. Просто их отношение к CIELab. Те значения CIEXYZ, которые определяют объем цветового пространства, преобразуются в CIELab, а затем в целевое пространство.

Битовая глубина — это количество цветовой информации, доступной в пикселе. Это очень хорошо объяснено здесьБолее высокая битовая глубина, применяемая к фотографии и цифровым изображениям, позволяет получить больше информации об изображении в каждом пикселе. Эта более высокая битовая глубина обеспечивает большую регулировку при раскрытии теней или возвращении ярких деталей. Помните, что визуализируется битовая глубина пикселя, а не захваченная битовая глубина. Помните, что однажды уменьшив биты или цветовое пространство, его нельзя будет расширить. Преобразование 8-битного изображения в 16-битное не создает больше битов на пиксель, а просто удваивает биты в 8-битном пикселе. То же самое с цветовыми пространствами. Если изображение было преобразовано в sRGB, и теперь вы хотите, чтобы все эти яркие цвета исходного изображения были напечатаны на вашем принтере с широкой гаммой, извините, этих цветов больше нет в этом изображении sRGB. Начните заново и визуализируйте эти пиксели в большем цветовом пространстве.