Pull to refresh

Система управления цветом vs Браузеры vs Просмотрщики графических файлов

Reading time5 min
Views3.6K

Точное преобразование цветового пространства профиля происходит в и обратно в независящем от устройства цветовом прострастве (PCS), то есть система управления цветовым профилем программы преобразует изображение из пространства sRGB (например) через PCS в пространство цветов монитора. Для преобразования могут использоваться две модели алгоритмов: Matrix/TRC и LUT (Lookup table), соответственно цветовой профиль может быть основан на Matrix/TRC, на LUT или содержать и то и то. В Windows не все программы умеют управлять цветом в принципе, не каждая умеющая программа умеет работать с обоими алгоритмами преобразования, определённый алгоритм может поддерживаться только для определённых файлов, не каждая может конвертировать в профиль монитора. Зоопарк. Попробуем с ним немного разобраться и начнём с...

Начнём с браузеров

Для теста я использую специально подготовленные файлы (первые три файла с поддержкой и LUT и Matrix/TRC профилями, следующие три только с LUT, по три файла потому что три расширения (jpg, png и tif). Возможны несколько вариантов отображения данных файлов:

Система управления цветом работает корректно
Система управления цветом работает корректно
Система управления цветом работает не совсем корректно
Система управления цветом работает не совсем корректно
Система управления цветом не работает
Система управления цветом не работает

Откроем html страничку со всеми файлами в разных браузерах

Слева направо Microsoft Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1
Слева направо Microsoft Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1

Открыть отдельно.

Что можно сказать при взгляде на изображение? Ну точно можно сказать, что у Firefox есть проблемы, а у Edge и Chrome всё ок. Firefox можно тюнинговать, подробнее тут (пишем в адресной строке: about:config, в поиске: color_m,

gfx.color_management.enablev4 = true

gfx.color_management.mode = 1

gfx.color_management.rendering_intent = 1

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

Сделать скриншот без искажений не удалось, пришлось сфотографировать
Сделать скриншот без искажений не удалось, пришлось сфотографировать

Открыть отдельно.

Картина радикально меняется, Firefox молодец, после проделанных манипуляций он начинает показывать абсолютно всё верно, а вот остальные браузеры нет, похоже, что они работают не с профилем монитора, а с sRGB, так как, если бы работали с профилем монитора, то данный эффект отменился бы.

А теперь применим к монитору профиль на основе LUT+Matrix

Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1, 
Edge Dev 97.0.1072.8, Chrome Canary 98.0.4714.0, панель настроек
Edge 95.0.1020.53, Chrome 96.0.4664.45, Firefox 94.0.1, Edge Dev 97.0.1072.8, Chrome Canary 98.0.4714.0, панель настроек

Открыть отдельно.

У стабильных версий Edge и Chrome поменялся цвет надписей red green blue, Firefox по прежнему молодец (Dev версия Edge пофиксила данное поведение, Canary версия Chrome всё ещё нет). Автор тестовых картинок утверждает, что такое поведение возникает, если программа не умеет работать с LUT профилем устройства).

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

Изображения
Firefox
Firefox
Edge
Edge

Оригиналы файлов: Firefox, Edge.

Видно, что на конкретно данном примере цветопередача совпадает, а вот чёткость у Firefox лучше, с Chrome ситуация аналогична, с цветопередачей всё ок, а чёткость хуже.

Продолжим с программами для просмотра графических файлов

В тесте участвовали Windows Photo 2021.21110.8005.0, FastStone 7.5, HoneyView 5.42, ImageGlass 8.2.6.6 (GitHub) , IrfanView 4.58, JPEGView 1.0.37 (SourceForge), Nomacs 3.16.1709 (GitHub), PicView 1.6.1 (GitHub), qimgv 1.0.2 (GitHub) и qView 4.0 (GitHub), XnView 0.99.1. Изначально я также хотел продемонстрировать с какой скоростью открывается файл в каждой из программ (легко замерить скорость открытия программы с помощью PowerShel и команды

Measure-Command {Invoke-Item .\example1.jpg}

десяти прогонов с закрытием программы после каждого прогона, но быстро понял, что это быссмысленно, открытие программы != завершению открытия файла, как кэширует Windows вообще не понять, но тем не менее результаты следующие:

  • Windows Photo открытие 247 мс;

  • ImageGlass 47 мс (но файл отображается примерно через одну секунду);

  • У остальных программ в среднем открытие происходит за 49 мс.

В просмотрщиках опция управления цветом, если и есть, то по умолчанию выключена (перед тестирование включал), также у некоторых есть опция конвертирования в профиль монитора, также по умолчанию выключена, но мною включена. Программы Nomacs, PicView, qimgv и qView вылетели, так как в принципе не умеют работать с системой управления цвета.

Просмотрщик может использовать систему управления цветом (1 балл), использовать, но преобразовывать некорректно (0.5 балла) или совсем не использовать (0 баллов), за наличие конвертации в профиль монитора 0.01 балла, за возможность выбора профиля для файлов у которых его нет 0.001 балла.

В результате получается следующая таблица

XnView лидер
XnView лидер

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

Демонстрация разных методов преобразования

Удивился тому, что FastStone и IrfanView спотыкаются на png, показывая следующее

Наверное, у этого поведения есть даже вменяемое обхъяснение, поделитесь, если знаете
Наверное, у этого поведения есть даже вменяемое обхъяснение, поделитесь, если знаете

От Windows Photo особенного не ждал, поэтому особо и не расстроился. Заинтересовал ImageGlass, симпатично выглядит, активно развивается, в текущем dev билде уже часть косяков поправили (заработало управление цветом на tif, например), может и перерасчёт в профиль монитора прикрутят.

Если сравнивать цветопередачу у участников теста, то у всех кроме ImageView изображение ничем не отличается от изображения в FireFox. ImageView изображение в профиль монитора не конвертирует, в результате оно сильно ярчит, аналогичного эффекта можно добиться, если, например, отключить автоопределение и использование профиля монитора у FastStone.

Зеркало

Изображения
ImageGlass
ImageGlass
Firefox
Firefox

Оригиналы файлов: Firefox, ImageGlass

Выводы? Как таковых не будет.

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

Если разбираетесь меньше меня, то могу сказать одно: пользуйтесь тем, что нравится с учётом того, что для вас важно.

Файлы, используемые для теста, распространяются по лицензии Creative Commons BY-SA 4.0, автор Florian Höch . Скачать их, ознакомиться с принципом работы и объяснить мне, где я ошибся можно здесь, также можно скачать по прямым ссылкам тестовые профиля (зеркало), файлы для теста (зеркало). Для быстрой смены профиля монитора можно воспользоваться программой DisplayProfile от X-Rite. Фотография льва взята на сайте www.signatureedits.com.

p.s. Если у вас WindowsPhoto после загрузки изображения меняет его цвет, то скорее всего дело в цветовом профиле монитора, установите sRGB (Adobe RGB, если монитор с широким цветовым охватом), и, возможно, проблема исчезнет, но учитывайте, что лучше использовать профиль производителя, а ещё лучше произвести калибровку монитора.

История изменений темы

v05 Добавил версии программ для просмотра графических файлов.

v04 Добавил прямые ссылки на тестовые файлы, тестовые профили для монитора и программу, позволяющую быстро менять профили монитора.

v03 Добавил пример работы разных методов визуализации у XnView.

v02 Добавил тест браузеров с профилем монитора на основе LUT+Matrix.

v01 Добавил зеркала видео и возможность открыть некоторые файлы отдельно.

Tags:
Hubs:
Total votes 12: ↑12 and ↓0+12
Comments10

Articles