Почему калибровка «видна» в редакторе, но не в браузере и видео
ICC/ICM‑профиль монитора может корректно работать в цветоуправляемых программах, но частично игнорироваться в браузере и особенно в видео — это чаще всего ограничения цветового менеджмента и отдельный видеопайплайн (GPU/оверлеи/HDR), а не «сломанный профиль».
Оглавление
Как ICC должен применяться и где ломается цепочка
Чтобы ICC‑профиль «сработал», приложение должно сделать три вещи:
- понять цветовое пространство контента (обычно sRGB/Rec.709);
- пересчитать цвета в профиль дисплея;
- вывести через один и тот же графический путь.
В браузере и системе это часто не единая цепочка: текст/картинки/канвас/видео могут рисоваться разными подсистемами, поэтому часть элементов выглядит «правильно», а часть — нет.
Почему браузер не всегда цветоуправляемый
1) Нетегированный контент трактуется по-разному.
Если изображение без встроенного профиля, браузер может считать его «как есть» (условно «в пространстве монитора»), что на wide‑gamut дисплее даёт пересатурацию.
2) Не всё в веб‑странице проходит одинаковую коррекцию.
CSS‑цвета, градиенты, canvas/WebGL и некоторые эффекты могут композиться иначе, чем обычные изображения. В итоге: фото выглядит нормально, а фон/кнопки/градиенты — «не в тон».
Если вы делаете контент для веба: для картинок почти всегда выгодно встраивать профиль (sRGB) — так меньше сюрпризов у зрителей.
Почему видео часто обходится без ICC
Видео обычно выводится через аппаратный путь: аппаратное декодирование → GPU‑композитинг → нередко hardware overlay (отдельная «плоскость» поверх интерфейса). Этот режим оптимален по производительности, но может:
- обходить часть цветовых преобразований, которые вы ожидаете от ICC;
- применять собственные преобразования (например, для YUV→RGB);
- вести себя по-разному в паузе и в воспроизведении (меняется режим композитинга).
Отдельная история — HDR в Windows/macOS: при включённом HDR система может тонмапить SDR‑видео и UI, а калибровка и профили в SDR/HDR цепочках применяются по-разному.
Симптом «цвета меняются, если поставить видео на паузу/пошевелить мышью» часто указывает именно на переключение режимов вывода (overlay/композитинг), а не на проблему ICC.
Быстрая диагностика и что сделать
1) Сравните три объекта
- Тегированное изображение (со встроенным sRGB)
- Нетегированное изображение
- SDR‑видео (и отдельно HDR‑видео, если используете)
Интерпретация:
- тегированное ок, а нетегированное «кислит» → проблема в трактовке нетегированного контента;
- изображения ок, а видео «мимо» → почти наверняка видеопайплайн/оверлей/HDR.
2) Проверка «в одну кнопку»
- Временно отключите аппаратное ускорение в браузере и перезапустите.
- Если стало заметно ближе к ожидаемому — причина в GPU‑пути (оверлеи, драйвер, HDR‑обработка).
3) Приведите среду к предсказуемой
- На время диагностики выключите HDR в системе и проверьте SDR‑контент.
- Обновите драйвер видеокарты и перезагрузите (часто меняется поведение оверлеев/тонмаппинга).
- Убедитесь, что в системе выбран один актуальный ICC‑профиль для нужного монитора (особенно при док‑станциях и нескольких дисплеях).
4) Мини-таблица «симптом → причина → действие»
| Симптом | Вероятная причина | Что попробовать |
|---|---|---|
| В редакторе нормально, в браузере перенасыщено | Нетегированный контент без корректной интерпретации | Использовать тегированные изображения; проверить настройки цветоуправления браузера |
| Видео отличается от картинок, меняется при паузе | Оверлей/отдельный видеопуть | Выключить аппаратное ускорение для теста; обновить драйвер |
| SDR терпимо, HDR «серит/вымывает» | HDR/тонмаппинг ОС | Временно выключить HDR; проверить калибровку HDR отдельно от SDR |
Частые ошибки
- Пытаться «чинить ICC», когда проблема на самом деле в аппаратном оверлее видео.
- Держать включённым HDR и оценивать SDR‑картинки/видео «на глаз», не понимая, что ОС их тонмапит.
- Использовать несколько профилей/утилит, которые одновременно грузят LUT/калибровку (получается двойная коррекция).
- Сравнивать цвета по скриншоту: скриншот может фиксировать не тот этап пайплайна, что вы видите на экране.
FAQ
Почему в одной системе/браузере всё похоже, а в другой — нет?
Разные графические стеки и правила: что считается sRGB по умолчанию, как обрабатывается нетегированный контент, используется ли overlay для видео, включён ли HDR.
Почему на wide‑gamut мониторе проблема заметнее?
Потому что ошибка интерпретации sRGB на широком охвате даёт сильную пересатурацию. На sRGB‑дисплее она часто «маскируется».
Можно ли сделать так, чтобы ICC всегда применялся к видео?
Иногда — частично (через отключение аппаратного ускорения/оверлеев, настройку HDR), но гарантировать «как в редакторе» нельзя: видеовывод часто идёт отдельным путём с собственными преобразованиями.
Что важнее: профиль монитора или профиль контента?
Оба. Но если контент подготовлен некорректно (нет профиля, неверное пространство), ICC монитора не обязан «спасать» картинку во всех приложениях.