Есть ли способ получить правильное смешивание цветов без постеризации, работая только с 8 битами? Или что-то лучше, чем смешивание цветового пространства Linear RGB?

Я ищу практическое и ортогональное решение, которое предпочтительно:

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

Почему:

Работа в линейном и/или высокой точности не идеальна.

  • Это делает операции более склонными к постеризации ( темные значения страдают больше всего ), например, левый холст представляет собой смесь 16-битного XYZ, правый — 8-битного линейного sRGB, оба визуально визуализируются в нелинейном sRBG:

Было бы здорово работать в 8 битах, это привело бы к более производительному холсту.

  • Это не даст абсолютно реальной аддитивной математики цвета, так как вы не получите постоянное значение интенсивности, например:

введите описание изображения здесьОжидаемая смесь находится в небольшом градиенте сверху, нулевое изменение интенсивности.

  • Mix имеет тенденцию к более светлым значениям, например, нелинейный sRGB имеет тенденцию к более темным значениям, это преимущество в нелинейном режиме, мы более осведомлены об изменениях низкой интенсивности, и это хорошо работает с точки зрения построения контраста, левый - это линейное смешение цветов, а правый - нелинейный, оба, верхнее пятно без изменения давления слева направо и обратное внизу также без изменения давления:

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

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

Я полностью открыт для программ, которые автоматически линеаризуют или выполняют какие-либо автоматические трюки, если это дает какое-либо реальное преимущество с точки зрения качества микширования или производительности .

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

Самое близкое, что я получил от чего-то действительно интересного с точки зрения смешивания цветов, было смешивание рабочего цветового пространства CIE XYZ , так как я получил такие результаты, как:

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

Пока вас не поразит странность CIE XYZ :

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

Итак, я все еще открыт для новых процессов, как всегда, я могу получить от этого что-то художественное, я все еще изучаю работу в CIE XYZ с ограниченными селекторами цветов. Или любое предложение, данное здесь.

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

Ответы (1)

Я не совсем понимаю ваш вопрос.

Но в конце концов постеризация производится не путем «смешивания». Является результатом «отображения».

Если у вас есть в одной зоне значение r255g128b0 и в соседней зоне r255g129b0, и она показывает некоторую постеризацию, вы ничего не можете с этим поделать. У вас просто есть ближайшие возможные значения и нет возможности поставить средний цвет. Неважно, как они смешались вместе.

Насколько мне известно, единственный способ обойти это ограничение — «смягчить» переход. Это создание случайного набора пикселей в следующей зоне.

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

Это может зависеть от качества дисплея, контрастности, яркости, окружающего освещения или даже настроения наблюдателя.


Но да, модель RGB нелинейна по своим компонентам, она логарифмическая, и значения меняются в зависимости от канала.

Вот некоторые цвета RGB, но расположенные в виде кругов HSB.

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

Теоретически у них одинаковая «яркость», но общая яркость на синем канале не совпадает со 100% яркостью на зеленом канале.

При преобразовании в оттенки серого мы видим очевидные различия. R+G дает желтый цвет, который, очевидно, ярче синего.

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

Существует однотонный цвет, который пытается справиться с этой воспринимаемой яркостью. Цветовая система Munsell https://en.wikipedia.org/wiki/Munsell_color_system

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


Я не программист, но, на мой взгляд, я бы поискал кривую, адаптированную к каждому каналу R+G+B отдельно, это может быть применение разных значений гаммы https://en.wikipedia.org/wiki/Gamma_correction например, для каждого канала или поиск другой логарифмической кривой.

Конечно, но это имеет свою роль в процессе, это может быть проблема с точностью, вы не захотите вычислять CIE XYZ с 8 битами или любым большим цветовым пространством, таким как Aces, вы получите визуальную постеризацию при переносе рабочего пространства. вернуться к нелинейному sRGB (монитор). Цель вопроса - найти меньшее бремя с точки зрения производительности или лучшего качества, поскольку линейный sRGB также не будет давать очень правильного смешивания цветов, добавит дополнительную информацию по вопросу.
Мне нравится почти перцептивный цвет, который в некоторых случаях осветляет однородные пространства для выбора цвета, например, яркость, взвешенную по rec 709коэффициентам, но я считаю, что было бы нецелесообразно смешивать в таком пространстве, поскольку у нас слишком широкие вариации контраста, особенно на крайних значениях яркости. диапазон.
8-битное пространство rgb волшебным образом не получает большего разрешения, независимо от того, используете ли вы дизеринг в 8 бит или используете 16 бит, тогда дизеринг при преобразовании в 8 бит не имеет никакого значения. разница действительно заключается в дизеринге больше ничего. сделаете вы это заранее или нет, не имеет значения, @RomuloPBenedetti. Вы дитерируете или имеете маховые линии. Также нет правильного способа смешивания.
Это не построенный градиент с помощью инструментов градиента, это касается художественных кистей, размазывающих, смешивающих и, таким образом, выполняющих повторяющиеся математические операции над ним, и, скорее всего, повторяющееся смазывание является проблемой (неизбежно, традиционная краска - это смешивание), так как в этом случае вы может слишком сильно растягивать градиент, чтобы получить хорошее перцепционное преобразование в нелинейные возможности sRGB ... Там нет преднамеренного дизеринга, это просто инструмент для размазывания, размазывающий 2 сплошных цвета.
@RomuloPBenedetti Вы не можете обобщать. Это действительно зависит от того, какое приложение вы используете и как вы его используете. Точные алгоритмы, которые он использует. Нет никаких причин, по которым смазывание должно делать что-то другое в разных рабочих пространствах. Это буквально зависит от того, как реализовано ваше приложение. Кроме того, самодовольство - не совсем разумный способ смешивать вещи.
@joojaa Я использую krita, я уверен, что он не линеаризует какие-либо операции с кистью / режимом наложения, он строго следует цветовому пространству и битовой точности, он отображается только в нелинейном цветовом пространстве, как я его выбрал, а это не используемые на холсте, даже селекторы цветов могут работать в цветовом пространстве и точности холста.
@joojaa Я полностью открыт для новых процессов, если они помогут преодолеть ограничения, как я указываю, но в любом случае мотивация приближается к традиционному искусству старой школы в цифровом контексте, поскольку есть ценность в текстурах масляной живописи, есть ценность в смешивать традиционными способами (и не делать этого тоже, когда задумано) по многим причинам, даже если выйти за рамки укоренившегося восприятия художественного процесса. Просто у цифровых технологий есть некоторые характеристики, которые плохо сочетаются друг с другом, и я ищу возможности преодолеть это, не лишая богатства художественного процесса.