?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
Мой серый - это зелёный
nyaload
_winnie
Если нарисовать пикселями шахматную доску, то она у меня окрашивается в зеленый цвет прямоугольными пятнами, положение пятен зависит от взаимного расположения элементов на далеком расстоянии на экране на той же scanline. Если залить черно-белой решёткой весь экран - то он окрашивается в четко зелёный цвет примерно соответствующий rgb=#53b053
Кто-нибудь в курсе, как называется этот баг и можно ли его поправить в мониторе (ASUS PB287Q)? Фото под катом. update: похоже что это "технология улучшения картинки" называемая в меню монитора "sharpness", но отключить её для стандартного sRGB режима невозможно.

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

* однопиксельный checker board для проверки гамма-коррекции на мониторе использовать нельзя. Чередующиеся через один пикселы не дают такого же освещения, как крупные блоки, как из-за физическо-железных проблем (пикселы не успевает поменять освещение при быстром чередовании), так и из-за железно-софтварных - баги в пост-процесс софте внутри монитора, dithering, у меня наверное что-то из этого.

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

update: Я при измерении гаммы наткнулся на то, что браузер при ресайзе картинок размывает пиксели в непредсказуемый серый цвет без четкой границы между двумя цветами. Из-за этого у меня и получалисть неадекватные значения.



Фото монитора:


Фото вблизи, квадратные GBR пиксели, граница между белым, и зеленым которое должно быть серым



Шахматная доска из пикселей: http://dobrokot.ru/pics/i2016-01-23__17-03-53_2kb.png

Tags: ,


  • 1
Случаем дело не в том как RGB матрица составлена? Типа какое-нибудь
RG
GB
где трудно спрятать зелёный?
Ну и поверх, быть может, какая-нибудь логика для «улучшения» картинки, которая выпячивает особенность.


Сиреневые полоски - это из-за линзы и нечеткости слились G-R полоски, если посмотреть прямо на них, это точно такие же белые GBR пиксели.


Это фрагмент этого рисунка:



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

Edited at 2016-01-23 04:31 pm (UTC)

А у тебя разрешение экрана соответствует матрице? У тебя же монитор какого-то несусветного разрешения :)

Да, соответствует. Вот такие странные артефакты для шахматной доски есть, но замыливания других однопиксельных рисунков нет.

Меня сейчас сильнее волнует более глобальный вопрос "почему гамма на айфоне и на моем мониторе так далека от стандартных значений", чем "как именно ошиблись программисты пишущие прошивку для монитора"

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


Покопался в меню и почитал http://www.tomshardware.com/reviews/asus-pb287q-4k-monitor,3832-3.html

У монитора есть "режимы" -
Scenery mode
Standard mode - *
Theater mode - *
Game mode
Nigth View mode
sRGB mode - *
Reading mode - *
Darkroom mode
В режимах помеченых * происходит перекраска решетки из пикселей.

И есть несколько "технологий улучшения картинки" -
Sharpness, VividPixel, и тд.

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

Standard и sRGB - это режимы, в которых теоретически должно уже все правильно настроено за меня (включая gamma=2.2 , http://www.tomshardware.com/reviews/asus-pb287q-4k-monitor,3832-6.html). Но именно в этих режимах появляется изменение оттенка на пиксельной рештке, и именно в этих режимах нельзя отключить sharpness.
А как правильно перенастроить другие режимы - неясно (колориметра у меня нет и я не знаю как им пользоваться).
Пока что взял случайный (Night View mode), поправил контраст чтобы не резал белый и черный цвета, и отключил всякие "технологии улучшения".


Тем не менее, остается ещё вопрос "что с gamma и почему она и на телефоне-айфоне, и на мониторе в sRGB режиме меряется как 1.4"

А как у тебя монитор подключен, мил человек?

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

Это видно если сравнивать горизонтальную зебру и вертикальную (ширина полос 1 пикс).

Display Port, да

Кажется, проблема порождается в режимах standard и sRGB неотключаемой опцией "sharpness" или ещё каких-то. Но в этих режимах она не отключается. В других режимах типа "game mode"? "reading" или "darkroom" всё отключается, но они могут не соответствовать стандартным цветовым профилям. В треде выше чуть подробней написал.

И даже после отключения всего что отключается - всё равно остается слегка зеленоваытй оттенок, именно на решетке. На вертикальных полосках нет (но зато вертикальные полоски мерцают).

Но мне сейчас интересуют, почему на всех устройствах gamma получается равной 1.4, хотя википедия и прочией источники говорят про стандартное значение в 2.2

На вертикальных полосках нет (но зато вертикальные полоски мерцают).

вот это сильно похоже на 6 битную панель (6 бит на канал). Соответсвенно 8 битный цвет получают динамически (dithering во временной области).

Похоже что 2.2 это артифакт совмесной работы всех алгоритмов улучшения изображения в мониторе. Сам понимаешь, при 6 битах, всех возможных типах dithering'а, и еще шарпенинге поверх говорить об удержании точного значения гаммы не приходится.

Кстати, если подсветка LED, то там еще и адаптивная яркость подсветки (режим darkroom на это намекает). От этого гамма может может уплыть + краевые эффекты.

> похоже на 6 битную панель
10-bit (8-bit with FRC) ( http://www.tomshardware.com/reviews/asus-pb287q-4k-monitor,3832.html )
Решётка составлена из чисто белых и чисто черных пикселей.
В меню настроек про битность не нашёл.

update: FRC, это оно похоже оно и есть "dithering во временной области", http://www.tftcentral.co.uk/featurescontent.htm . Только непонятно, почему может использоваться 10-битный с мерзким мерцанием явно выходящим за 1/256 яркости, вместо стабильного 8-битного.


> Похоже что 2.2 это артифакт совмесной работы всех алгоритмов улучшения изображения в мониторе.
Меня смущает, что на айфоне, судя по калибровочной картинке в этом посте, тоже получается 1.4. Хотя должно быть 2.2 - http://www.displaymate.com/iPhone6_ShootOut.htm http://www.tomshardware.com/reviews/apple-iphone-6-plus-review,3976-17.html

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


Edited at 2016-01-23 10:56 pm (UTC)

У меня на айфоне (5S), виндофоне (Lumia 920) и ведроиде и 2 разных мониторах 2.2 если не зумить. Если зумить то разные вариации 1.4 и ниже.

О, а у тебя же Windows? Расскажи, все норм работает? У меня Windows 10, nVidia, если включать 4k/60hz over DisplayPort, то раз в 10-20 секунд монитор моргает (Dell P2415Q). Если чуть ниже (30hz или разрешение меньше), то все идеально.

P.S. серая сетка серая во всех режимах (ползунок sharpness есть 0–100, по умолчанию стоит 50, дела особо не меняет). Как определять гамму по твоим картинкам я не понял.

Гамма меряется так - ищем тот квадрат, который при прищурировании сливается со своим фоном. Ещё раз напомню, что рисунок надо сильно увеличить, чтобы полоски были сильно толще пикселей.



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

А виндоус какой? И видюха?

При прищуривании 1.4 сливается. Мне кажется это какой-то неправильный тест.

Меня тоже удивляет, я даже проверил что формула смешения двух сервых цветов X и Y
((((X/255.0)**g + (Y/255.0)**g) / 2) ** (1.0/g)) * 255
соответствует цветам на картинке, но где ошибка - я так и не понял.


Win7 / AMD Radeon HD 7700 Series


Edited at 2016-01-24 01:55 pm (UTC)

может засада с ретиновостью как раз? Типа тесты рассчитаны что один пиксель это один пиксель, а тут один пиксель решетки на картинке это 4 пикселя монитора.

Вот тут например http://www.lagom.nl/lcd-test/gamma_calibration.php#gamma-test-2.png
я вижу ~1.3 в левой картинке, ~1.8 в правой. Системная гамма стоит в 2.2 (оно сейчас и на маках, и на виндах одинаковое)

Ага, если картинку уменьшить, чтобы она точно в пиксели попадала, на правой становится уже ~2.2, на левой ~2.0

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

У меня по этим полоскам получилисть разные значения 1.4, 1.6, 1.8 на мониторе, и точно так же на экране айфона.

Неясно, какая была математика при создании этих табличек.

Например, в первой полоске на уровне 2.2 смешиваются цвета 0 и 248, должно получится при g=2.2
((((0/255.0) ** g + (248/255.0)**g) / 2) ** (1/g)) * 255 = 181
а пипетка говорит про значение rgb=(175,176,175)




Edited at 2016-01-24 03:31 pm (UTC)

Попробовал более точные формулы для перевода из sRGB в linear RGB, получилось примерно тоже самое, значение 182 при смешивании 0 и 248 ( https://gist.github.com/dobrokot/7c86c6c03d6e7d289143 )

Эти тесты надо ОБЯЗАТЕЛЬНО смотреть 1:1 потому что иначе получается непредсказуемое говно с 2 а то и 4 гамма-коррекциями в пайплайне (сэмплинг текстуры, ресайз, еще сэмплинг, блит...)

> то раз в 10-20 секунд монитор моргает
Поменяй кабель или, если не повезло, видяху; у нвидий такое встречал.

Совет увеличивать тестовые картинки - зло, т.к. браузеры нынче делают perceptual resize с шарпенингом.

У меня 2.2 :)

У меня получается 1.4 и на мониторе, и на телефоне, и мне не верится, что это может быть совпадением, настолько сильно отличающимся от стандартных значений.

Edited at 2016-01-24 07:21 pm (UTC)

У меня на всех устройствах получается "ниже 1.4", если смотреть с ресайзом (вообще, билинейный ресайз будет приближать твою тестовую картинку к гамме 1)

А если смотреть без ресайза - то на всех устройствах железобетонно и консистентно 2.2

Так что всё сходится, вроде... Не вижу противоречий с твоим результатом.

у меня внезапно появились подозрения. какая винда и какое разрешение экрана выставлено?

> билинейный
Бинго!!! Вот в чем проблема!
Я не обратил внимание, что ресайз - не nearest neighbors, а разблюреный.


Разрешение - родное (см. фото пикселей выше), сейчас за другим монитором, поэтому пишу по справочник, 3840x2160.
Винда - Win7.

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


Edited at 2016-01-25 03:58 pm (UTC)

Лол. Я пытался это донести всеми комментами, но похоже недостаточно очевидно формулировал)

Ага!

Я игнорировал то что мне казалось очевидно не подходящим (предложение использовать маппинг пикселей 1 к 1), и вместе с этим - я не обратил внимание на полезное замечание про то, что зум это совсем не исправляет, а наоборот.

  • 1