Значения пикселей более 255

Значения пикселей более 255

У меня есть мысль создать цвет, который обходит числовое значение цвета 255.

Теперь, если вы не знали, компьютерные цвета создаются с помощью шестнадцатеричных кодов, максимальный из которых — FF, шестнадцатеричный код 255. Как бы мы увидели цвет, созданный с помощью шестнадцатеричных кодов, которые обходят FF? Это, конечно, выглядело бы странно.

Но как нам передать 255, если мы хотим создать цвет?

решение1

То, как обрабатывается «переполнение» от FF/255, полностью зависит от программы.

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

Если бы вы смогли как-то "продвинуться" мимо 0xFF, то следующим значением было бы 0x100. Либо эта 1 каким-то образом перезаписала бы или увеличила бы следующий байт, либо просто была бы отброшена.

В случае упорядоченных пиксельных данных RGB вы также можете исказить зеленые данные и, как минимум, просто установить красный канал на 0x00.

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

Конечно, это предполагает 8-битный цветовой диапазон для каждого канала, 0x00-0xFF (десятичный 0-255). Если вы хотите использовать более широкое цветовое пространство, то вам нужна программа и формат файла, которые его поддерживают. Сейчас больше программ поддерживают 10-битный цветовой профиль для изображений, который может дать диапазон 0-1024, но самое высокое значение по-прежнему представляет только «полностью включено» и дает только гораздо более тонкий градиент между «выкл» и «вкл» с точки зрения цвета.

Все красные 255 в 8-битном цветовом пространстве при преобразовании будут выглядеть так же, как красные 1023 в 10-битном пространстве. И наоборот, фактическое значение 255 в 10-битном цветовом пространстве будет выглядеть довольно темным.

решение2

Значения пикселей более 255

Существуют форматы изображений, которые используют 2 байта для представления значения каждого субпикселя, то есть значения 0-65535 - но не по той причине, о которой вы думаете. Это не делает максимальный цвет ярче (65535 точно такой же яркий, как 255 в 1-байтовых форматах), но дает вам больше шагов для работы.

Другими словами, 0 всегда означает 0% яркости, а максимальное значение (255 или 65535) всегда означает 100% яркости. Для максимального значения 255 наименьшая цветовая разница, которая может быть представлена, составляет 0,39%, тогда как для 65535 она составляет 0,0015%.

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

Цветовая гамма

Мониторы, предназначенные для работы с цветочувствительностью, имеют более широкую цветовую гамму, что означает, что они могут воспроизводить более широкий диапазон цветов. На таких экранах одно и то же значение цвета 255 (или 65535) выглядит более ярким, чем на обычном экране. Если цвета на экране старого/дешевого ноутбука выглядят размытыми по сравнению с более новым/дорогим ноутбуком, это, вероятно, по той же причине: у более дорогого ноутбука более широкая гамма (хотя все еще не такая широкая, как у профессиональных вещей), и обычно худший коэффициент контрастности. Экраны 1366×768 были печально известны тем, что были относительно плохи в этом.

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

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

HDR

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

Большинство таких дисплеев принимают 10 бит цвета на канал, что дает диапазон 0-1023. Но если пиковая яркость дисплея очень высокая, то 1023 не соответствует 100% яркости, к которой вы привыкли, — это больше, чем это. Если источник изображения (например, компьютер) знает об этом, он может отображать «обычную яркость» без использования дополнительных 2 бит цвета (т. е. максимально 255), но он также может использовать более высокую яркость в выбранных областях для достижения впечатляющего динамического диапазона. Так что теперь, когда вы смотрите на солнце в видеоигре, дисплей будет фактически ослепительно ярким в этой области, создавая более реалистичный эффект.

Связанный контент