sail2ithaki (sail2ithaki) wrote,
sail2ithaki
sail2ithaki

Categories:

A Game of Shadows

При обработке raw-файлов особое внимание приходится уделять точности расчетов в тенях. Не исключено, что фотографу понадобится сильно поднять и разделить тени, при этом сегодняшние ожидания по пластичности теней в raw-файлах значительно превосходят те, что были у нас при работе с пленкой и сканами. Одним из источников артефактов в тенях являются цветовые профили и сама CMM. С точки зрения конвертации тени, однако, это не только те участки, где низкое значение имеют все каналы RGB -- но об этом ниже. Тенденция работать с линейными битмэпами, в пространстве XYZ и вдобавок с включенной оптимизацией в совокупности приводит к интересным результатам.



Перехватим profile links, генерируемые on the fly при преобразовании из матричного профиля в матричный профиль, и посмотрим на структуру получившихся link'ов. Они состоят из входных кривых, таблицы LUT и выходных кривых. В случае link с оптимизацией кривые оказываются прямыми, а соответствующие кривым преобразования "зашиты" в LUT. Поэтому link'и с оптимизацией работают быстрее.

ProfileLinks_NoOpt_vs_Opt_struct

Таблица имеет относительно небольшое число равномерно распределенных узлов, обычно от 17 до 45. Кривые же - от 256 до 4096 точек. "Прямые" кривые имеют всего две точки.

Допустим, имеется 16-битный линейный RGB-файл со значениями, соответствующими 0..255 в 8-битном представлении с шагом 1. Для простоты "пространством камеры" будем считать линейную модификацию профиля Adobe RGB. Переведем файл в стандартный Adobe RGB с гаммой 2.2, используя link'и без оптимизации и с оптимизацией; сравним с расчетом. Слева - статистика link'а без оптимизации, справа - с оптимизацией.
ProfileLinks_NoOpt_vs_Opt_statistics

Посмотрим на те значения, где ошибка оптимизированного link'а угрожающе велика - это именно тени:
Screen shot 2012-08-18 at 9.25.06 PM

Результат выше получен для link'а с LUT из 17 узлов, размером около 40 килобайт. Если число узлов увеличить до 52 (размер таблицы LUT вырастет при этом до почти мегабайта) -- все равно первые полдюжины значений будут показывать значительную ошибку.

Очевидно, что некорректный colour transform workflow является значительным усилителем шума в тенях. Дело, однако, не ограничивается ахроматическими тенями, ошибка происходит при относительно малых значениях в любом отдельно взятом канале -- то есть страдают не только фотографические тени, но и все насыщенные цвета (то есть те, где один или два канала имеют небольшие значения). Один из примеров - шум в красном канале на снимках, включающих темно-синее небо.



Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments