M>Я всегда работал с цветами так :
M>Работаем всегда с ЛИНЕЙНЫМИ цветами , которые складываются и отнимаются физически . M>Какаю либо коррекцию производим только ПРИ ВЫВОДЕ на устройство (монитор например).
Здесь уже неоднократно говорилось, что разные задачи требуют разного подхода.
Сложение цветов правильнее делать в линейной гамме. А вот, многократно упоминаемый здесь градиент, не требует сложения цветов, а требует перцептуальной линейности. На такой задаче линейная гамма работает отвратительно. Для нее лучше подходит гамма близкая к 3.
Но это "чистые" задачи. Большинство реальных задач (например, альфа блендинг или какие-нибудь фото фильтры) требуют некоторую смесь и того и другого. Попытка правильно совместить эти требования может приводить к очень громоздким вычислениям. Поэтому, как компромисс, можно использовать гамму близкую к 2.
Здравствуйте, McSeem2, Вы писали:
MS>Ну, я точно так же могу возразить, что в Вашем случае на довольно большом участке слева незаметно никакого градиента, а справа — он слишком резкий. Я лишь "ратую" за то, что мой вариант более симметричный, иными словами, участки справа и слева, на которых почти не заметно градиента приблизительно одинаковы. У Вас же они существенно отличаются. Но, возможно, здесь накладывается индивидуальное воприятие. Надо опросить "незаинтересованных свидетелей" — который из градиентов представляется более симметричным. L*u*v или RGB-gamma=2.0?
На моем домашнем мониторе, который откалиброван под sRGB, моя картинка кажется мне более симметричной.
MS>Все это очень дорогие пространства. Как, например, делается alpha-blend в L*u*v? А остальные 24 color compositing операции?
Так я же и не устаю повторять, что использование гаммы в районе 2 представляется мне очень удачным компромиссом между правильной цветопередачей и равномерностью восприятия.
Здравствуйте, MichaelP, Вы писали:
MP>Здравствуйте, minorlogic, Вы писали:
MP>Здесь уже неоднократно говорилось, что разные задачи требуют разного подхода.
MP>Сложение цветов правильнее делать в линейной гамме. А вот, многократно упоминаемый здесь градиент, не требует сложения цветов, а требует перцептуальной линейности. На такой задаче линейная гамма работает отвратительно. Для нее лучше подходит гамма близкая к 3.
Тут я не очень понимаю что значит "перцептуальной линейности" , если постоянной яркости , тогда в YUV или LAB или еще что то , там линейно , потом обратно в RGB и применяем гамма корекцию к монитору.
MP>Но это "чистые" задачи. Большинство реальных задач (например, альфа блендинг или какие-нибудь фото фильтры) требуют некоторую смесь и того и другого. Попытка правильно совместить эти требования может приводить к очень громоздким вычислениям. Поэтому, как компромисс, можно использовать гамму близкую к 2.
Опять не согласен СОВСЕМ. только так — перевод в ленейное представление — операции — перевод опять в гама скоректированное
Здравствуйте, minorlogic, Вы писали:
M>Тут я не очень понимаю что значит "перцептуальной линейности" , если постоянной яркости , тогда в YUV или LAB или еще что то , там линейно , потом обратно в RGB и применяем гамма корекцию к монитору.
M>Опять не согласен СОВСЕМ. только так — перевод в ленейное представление — операции — перевод опять в гама скоректированное
"Гамма-скорректированное" — это и есть перцептуально линейное (естественно с оговоркой — приблизительно). Это то, что мы пишем в битмап, а потом вызываем BitBlt. Там визуальная яркость прямо пропорциональна длине вектора RGB и расстояние между цветами расчитывется в Евклидовой метрике.
То, что ты называешь "линейным" — это физически линейное, когда интенсивность излучения прямо пропорциональна значению (опять же, с оговоркой — приблизительно, там все приблизительно). Очевидно, что в этом случае используется метрика Манхеттена (r+g+b), поскольку интенсивности излучения каналов складываются (каждый со своим коэффициентом, но это не важно).
Воспринимаемая (перцептуальная) яркость в первом приближении пропорциональна корню квадратному от интенсивности излучения (две одинаковые фары воспринимаются примерно в sqrt(2) раз ярче, чем одна).
Но при этом, ЭЛТ дает интенсивность излучения (физическую) примерно пропорциональную квадрату напряжения на модуляторе и соответственно, значению в RGB. Грубо говоря, эти две зависимости компенсируются (не совсем, конечно же) и таким образом, мы уже имеем перцептуально линейное представление, не делая ничего. Пиксел RGB(127,127,127) дает примерно вчетверо меньше света, чем RGB(255,255,255), но глазами он воспронимается примерно вдвое темнее.
Более того, перцептуально линейное представление — это все, что у нас есть, и цвета представлены там наиболее компактно — 8 бит на канал вполне достаточно.
Гамма 2.2 — это функция преобразования из перцептуально линейного пространства в физически линейное и обратно. Эта гамма учитывает все — и нелинейность восприятия и нелинейность монитора. Линейная интерполяция цветов должна выполняться именно в физически линейном пространстве, после чего накладывается гамма для преобразования в перцептуально линейное. Здесь мы имеем дело с чистой геометрией.
Почему бы в видеокарте не настроить функцию преобразования, так, чтобы мы всегда работали в физически линейном пространстве и не заморачивались преобразованиями? По одной единственной причине — в физически линейном пространстве восьми бит на канал — мало. Надо 12-14. И соответственно, надо иметь в виду, что для работы без потерь, нам картинку (например, из PNG) надо переводить в 16 бит на канал и работать с ними. А потом опять преобразовывать в 8. RGB24 в физически линейном представлении — это примерно как RGB555 в перцептуально линейном. В каких-то задачах это не так уж и важно. В других — очень важно.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
представим лист белой бумаги при освещении в 1 физическую единицу, и черный бархат , который условно примем за 0.
составим также шахматное полотно из белых и черных квадратов.
четвертый лист подберем так чтобы его перцептуальная яркость соответствовала шахматному рисунку .
теперь осветив эти 4 листа физическим светом в 100 единиц ( а глаз воспринимает в гораздо большем диапазоне ), по твоей логике мы получим такую картину.
лист который был перцептуально средним между бархатом и белым листом ЖУТКО сместится по восприятию или к бархату или к белому листу .
Гдето нарушена логик а, потому что на самом деле этоит лист будет все равно примерно в 2 раза тусклее белого листа
Здравствуйте, minorlogic, Вы писали:
M>представим лист белой бумаги при освещении в 1 физическую единицу, и черный бархат , который условно примем за 0. M>составим также шахматное полотно из белых и черных квадратов. M>четвертый лист подберем так чтобы его перцептуальная яркость соответствовала шахматному рисунку .
M>теперь осветив эти 4 листа физическим светом в 100 единиц ( а глаз воспринимает в гораздо большем диапазоне ), по твоей логике мы получим такую картину. M>лист который был перцептуально средним между бархатом и белым листом ЖУТКО сместится по восприятию или к бархату или к белому листу .
M>Гдето нарушена логик а, потому что на самом деле этоит лист будет все равно примерно в 2 раза тусклее белого листа
Если визуальная яркость серого и шахматного листов одинакова, то значит и физическая одинакова (они отражают одинаковое количество света). Явное "нарушение логики" возникнет, если только клетки очень крупные. Но здесь уже пространственное разрешение сбивает с толку. Речь идет либо о точечном источнике, либо о равномерно освещенной области.
Кстати, получить серый лист, воспринимаемый по яркости так же, как и шахматный очень просто — уменьшаем размер квадратиков до предела визуального разрешения. Сохраняя геометрию, разумеется. На лазернике однопикельное шахматное поле будет просто черным.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
У меня на работе, кстати, на довольно дорогом (но все-таки ширпотребовском) мониторе NEC MultiSync LCD 2180UX картинка выглядит вполне прельстиво — с расстояния 2 метра — идеально равномерный светло-серый цвет. Означает ли это, что монитор откалиброван под sRGB? Но и мой тест с простой гаммой выглядит тоже хорошо при gamma=2.14 (я использую 16bpc внутри). Означает ли это, что sRGB на самом деле очень незначительно отличается от простой гамма-корекции? Судя по определению, кривая яркости sRGB очень близка к gamma=2.4. Только на самых темных цветах (0...10 из 255) мы имеем отрезок прямой:
Но почему тогда мой тест дает равномерную картинку при gamma=2.14 (точнее сказать, картинка выглядит наиболее равномерной, когда она сделана для gamma=2.14)? При gamma=2.4, окружающий фон выглядит явно светлее черезстрочного белого.
Кстати, на этом же мониторе, яркость и контрастность практически не влияют на равномерность. Только при превышении контрастности 50%, наступает насыщение и, скажем, цвета 220...255 никак не отличаются. Не понимаю, какой смысл "зарезать" диапазон таким способом?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
раз подчеркну, картинка сделана для sRGB, а оно не сводится к простой гамме.
MS>У меня на работе, кстати, на довольно дорогом (но все-таки ширпотребовском) мониторе NEC MultiSync LCD 2180UX картинка выглядит вполне прельстиво — с расстояния 2 метра — идеально равномерный светло-серый цвет. Означает ли это, что монитор откалиброван под sRGB? Но и мой тест с простой гаммой выглядит тоже хорошо при gamma=2.14 (я использую 16bpc внутри). Означает ли это, что sRGB на самом деле очень незначительно отличается от простой гамма-корекции? Судя по определению, кривая яркости sRGB очень близка к gamma=2.4. Только на самых темных цветах (0...10 из 255) мы имеем отрезок прямой:
MS>Но почему тогда мой тест дает равномерную картинку при gamma=2.14 (точнее сказать, картинка выглядит наиболее равномерной, когда она сделана для gamma=2.14)? При gamma=2.4, окружающий фон выглядит явно светлее черезстрочного белого.
Благодаря Вам сделал то, что давно хотел, но руки не доходили. Итак, результат:
Пространству sRGB по метрике L (она в Lab и L*u*v* одинакова) ближе всего соответствует gamma = 2.17. Т.ч. Ваш результат вполне понятен.
Построим градиент от черного к белому и будем менять освещение . Если восприятие нелинейно тогда , градиент как бы начнет изгибаться при изменении освещения .
Опять же того не происходит.
M>Построим градиент от черного к белому и будем менять освещение . Если восприятие нелинейно тогда , градиент как бы начнет изгибаться при изменении освещения . M>Опять же того не происходит.
А вот этим тестом Вы сами ответили на вопрос о популярности гаммы. При степенной зависимости изгиба градиента не происходит — отношения освещенностей в разных точках не меняются. Поправку от степенной зависимости вносят только в очень темных тонах, и это понятно, какой-то порог восприятия должен быть.
Здравствуйте, MichaelP, Вы писали:
M>>Построим градиент от черного к белому и будем менять освещение . Если восприятие нелинейно тогда , градиент как бы начнет изгибаться при изменении освещения . M>>Опять же того не происходит.
MP>А вот этим тестом Вы сами ответили на вопрос о популярности гаммы. При степенной зависимости изгиба градиента не происходит — отношения освещенностей в разных точках не меняются. Поправку от степенной зависимости вносят только в очень темных тонах, и это понятно, какой-то порог восприятия должен быть.
Нет нет , вы что то путаете , попробуйте провести эксперимент мысленный.
M>Нет нет , вы что то путаете , попробуйте провести эксперимент мысленный.
Давайте представим, что в точке, предположим, с координатой 1 у нас интенсивность 1, а в точке 2 — 2. Если взять "естественную" гамму 2, то по восприятию точки будут отличаться в sqrt(2) раза. Увеличим интенсивность в два раза, теперь значение интенсивности 2 и 4. А отношение по восприятию? Те же sqrt(2). И так для любых точек.
Здравствуйте, McSeem2, Вы писали:
MS>Рискну оспорить. Это не гамма монитора, а гамма восприятия (сетчатка глаза плюс обработка мозговой нейросетью). Вот еще одна иллюстрация:
MS>
MS>Разглядывать надо уже с расстояния метров 5-7. Гамма монитора здесь уж точно ни при чем — пиксел либо светится, либо не светится. Все пикселы излучают свет одинаковой (с большой точностью) интенсивности. Можно возразить, что здесь может присутствовать некая "паразитная засветка", но это на CRT — там пиксел накрывает чуть большую площадь, чем ему положено — за счет этого возникает дополнительная нелинейность (на принтере — вообще бардак, там пиксел — это клякса, накрывающая с десяток "пиксело-мест"). Но на LCD — все четко, там если и присутствует некая засветка, то настолько незначительная, что ей можно пренебречь.
Я отошёл и повертел головой. Так вот, цвет средних полосок (вертикальной и горизонтальной) стабильно отличается, вне зависимости от наклона головы.
Так что, это всё-таки особенности монитора. (У меня ЖК Samsung SyncMaster 920T, гамму я ему не настраивал).
Здравствуйте, MichaelP, Вы писали:
MP>Давайте представим, что в точке, предположим, с координатой 1 у нас интенсивность 1, а в точке 2 — 2. Если взять "естественную" гамму 2, то по восприятию точки будут отличаться в sqrt(2) раза. Увеличим интенсивность в два раза, теперь значение интенсивности 2 и 4. А отношение по восприятию? Те же sqrt(2). И так для любых точек.
Ну, строго говоря, на больших уровнях освещенности тоже наступает насыщение. И вот здесь возникает интересный момент — чем определяется суммарная характеристика яркости зрительного восприятия? Ясно, что значительная часть диапазона регулирутся диафрагмой — зрачок подстраивается под некую среднюю освещенность. Единовременно мы видим в ограниченном диапазоне освещенностей, но он все равно весьма широк по сравнению даже с самой совершенной фототехникой (так мне интуитивно представляется). По крайней мере, что-то не верится, что характеристика освещенность-сигнал в сетчатке является линейной. Я не знаю всей механики, но сдается мне, что уже в сетчатке присутствует некий "логарифмизм". Очень уж диапазон широк. Ну люди — ладно. А лягушки, глаза которых регистрируют отдельные кванты? И при этом не слепнут от яркого солнца? Но это уже вопрос вне темы.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, Кодт, Вы писали:
К>Я отошёл и повертел головой. Так вот, цвет средних полосок (вертикальной и горизонтальной) стабильно отличается, вне зависимости от наклона головы. К>Так что, это всё-таки особенности монитора. (У меня ЖК Samsung SyncMaster 920T, гамму я ему не настраивал).
У меня дома — дешевый hp pavilion f1903. Цветопередача — "аццтой". Тем не менее, никакой паразитной засветки не наблюдается. Цвет вертикальных и горизональных средних полос — одинаково серый, примерно соответсвующий RGB(192,192,192);
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.