ICM

Браузеры и Color Management

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

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

Ну совсем грубо, RGB (255,0,0) - это на двух мониторах ("обычном" и "расширенном") будет красный цвет, соответствующий красному углу охвата. Только красный этот будет сильно разным, см. например картинки с охватом

На скриншоте ниже четыре (на самом деле 2) варианта показа на мониторе одной и той же картинки:

browser-cm.jpg
открыть покрупнее

Слева направа и сверху вниз:

  • Firefox 3 (с включенным Color Management)
  • Photoshop CS3
  • Internet Explorer 7
  • Microsoft Picture and Fax viewer
Верхний ряд: правильное представление, нижний: неправильное.

Ошибки при обработке цвета: часть V, табличные профили

В предыдущих сериях мы рассматривали ошибки обработки цвета, возникающие при использовании матричных профилей, т.е. таких, где преобразование в PCS (profile connection space) и обратно задается простой матрицей 3x3. В реальной жизни матричные профили используются как рабочие пространства, а на стадиях импорта изображений и печати используются табличные профили, описывающие нелинейности реальных устройств.

Методология тестирования подробно описана в первой и второй статьях серии.

Upd: включены данные по Argyll для линейной гаммы.

Ошибки при обработке цвета: реабилитация Argyll

В первой части CMM-эпопеи с дистанции была снята CMS Argyll: в области с высокими насыщенностями наблюдались видимые взглядом артефакты. В то же время, на 16-битных файлах Argyll показала великолепные результаты, сравнимые, а на части данных и сильно лучшие, чем у лучших коммерческих CMM.

Как и я и обещал, я заслал автору баг-репорт. К моему приятному изумлению, ответ был получен через час и содержал патч к cctiff (тестовому приложению, которое я использовал в тестах). В самой CMM-engine ничего править не пришлось, там все было правильно.

Ошибки при обработке цвета: часть IV, линейная гамма

Это уже четвертая публикация на тему ошибок при преобразованиях цвета, мы постепенно приближаемся к реальным задачам. Список предыдущих серий: постепенно мы приближаемся к реальным задачам....

Из опыта известно, что цифровой шум в тенях чаще всего возникает при обработке данных с линейной «гаммой», а это те изображения, которые мы получаем с линейных сенсоров: цифровых камер и сканеров. Давайте посмотрим, что будет с ошибками на тестовых примерах.

Ошибки при обработке цвета: III. BetaRGB

В предыдущих сериях мы изучали ошибки модулей управления цветом при преобразовании sRGB-Lab->sRGBдля 8 бит тоже).

sRGB был выбран по той причине, что все цвета sRGB входят в Lab, следовательно, при абсолютной точности преобразований, вышеописанное преобразование не должно приводить к потере данных. В то же время, в реальной жизни для редактирования и хранения используются RGB-пространства с более широким gamut: Adobe RGB, ProPhoto, BetaRGB, EktaSpace и так далее.

Пространство BetaRGB обладает массой достоинств в качестве пространства хранения и редактирования: большим охватом реальных цветов, большой эффективностью кодирования данных. Интересно посмотреть, как ведут себя CMM-модули с этим пространством.

Ошибки при обработке цвета: II. 16 бит, гамма 2.2, матричные профили

В предыдущей публикации были рассмотрены ошибки, которые происходят в Color Management Modules (CMM) разных систем при обработке 8-битных данных. Было показано, что такое "неразрушающее" действие как конверсия из RGB в Lab и обратно оставляет от 3-5 значащих бит от восьми.

На сегодняшний день, 8 бит неактуальны, большинство изображений производятся с большей разрядностью. Следовательно, нужно изучить и их.

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

Ошибки при обработке цвета: I. 8-битные изображения, матричные профили

Все, кто работает с цветом, догадываются, что любая операция редактирования немножко разрушает изображение за счет округления дробных результатов вычислений до целых значений. Вот например, наложили вы кривую, таким образом, что значение 1 должно стать 1.8, а 2 — 2.2. После округления, оба результата будут округлены до 2, отчего вместо двух разных цветов получатся два одинаковых.

Неявно предполагается, что отклонения от идеала при цифровом редактировании невелики и влияют только на младшие биты значений, что практически незаметно на глаз. В то же время, мне никогда не попадались количественные исследования. Да, на практике я знаю, что инструмент Levels в фотошопе полностью разрушает тени, а остальные инструменты ведут себя приличнее, но это единственное знание, накопленное за 8 лет работы с цветом.

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

Bruce Lindbloom подошел к проблеме вплотную и показал, что для специального синтезированного изображения со всеми возможными цветами (16 млн цветов в 8-битном RGB-изображении) цикл конверсии sRGB->LAB->sRGB оставляет только 2 млн разных цветов из исходных 16 млн.

Простые упражнения с фотошопом (прогнать картинку по циклу RGB->LAB->RGB, а потом посмотреть разницу через Image—>Calculations) показали, что разница по красному каналу достигает 24 единиц т.е. речь идет о 5 битах ошибки в 8-битном изображении.

Дальнейшие упражнения потребовали создания инструментальных средств и аккуратной постановки эксперимента.

Subscribe to ICM