Обработка RAW

LibRaw 0.15.0-Alpha3

В LibRaw 0.15.0 Alpha3 возвернуты те улучшения, которые были/есть в 0.14, но которые были временно удалены из девелоперской 0.15-Альфа1-2:
  • Быстрый декодер LJPEG
  • OpenMP-ускорение в AHD/PPG-интерполяторах и в Wavelet Denoise
  • OpenMP-ускорение в вызове raw2image_ex()
  • Патчи для совместимости с LCMS1
В результате на 4-ядерной виртуальной машине dcraw_emu примерно в 1.5 раза быстрее dcraw на обработке моего обычного тестового набора из 339 RAW.

Несмотря на 'alpha' в названии версии, она может считаться стабильной в смысле качества работы. Вот ABI/API пока не устоялось, "есть еще пара идей", оттого и альфа.

А предыдущая альфа-2 сегодня попала в девелоперскую KDE 4.10, можно пользовать оттуда.

Upd: alpha-3 уже тоже в девелоперской KDE.

О 16-битных цифрозадниках

Наткнулся в ЖЖ Ильи Борга на такой вопрос к нему:
Я уточнить хотел к предыдущему вопросу. В MF цифровых камерах согласно всяким там заявленным характеристикам вроде часто стоит 16 битный АЦП. Это якобы заметно повышает ДД камеры (настолько что как обсуждалось некоторыми товарищами в той ссылке оставляет все DSLR с ихними 14 битами далеко позади). Это действительно так? Какй нибудь сильный выигрыш в тенях от этого получается?
Так вот, вот вам ответ для PhaseOne (компрессированный формат):
// dcraw.c, строчки в районе 1550-й, немножко упрощая
void CLASS phase_one_load_raw_c()
{
....
    for (col=0; col < raw_width; col++) {
      RAW(row,col) = (pixel[col] << 2) - ph1.black + black[row][col >= ph1.split_col];
    }
...
}
Если простыми словами, то в pixel[] содержится распакованая (из хаффмана) строка, дальше значение пиксела сдвигается на два бита (умножается на 4), потом вычитается уровень черного и все это кладется в 16-битный (unsigned short) буфер.

Какой вывод мы можем сделать? А такой, что АЦП - 14-битный, а в младших битах 16-битных значений до вычитания черного были такие вот кругленькие нолики.

В нежатом формате - не так, но нежатый формат я видел только на очень старых задниках, а все что видел нового - жатое. И на P45 и на P65+ и на IQ180 - везде в данных 14 реальных бит.

Справедливости ради, в материалах на сайте PhaseOne ничего про 16-битный АЦП не написано. Все гораздо более обтекаемо, "16-bit OptiColor"...

P.S. Написанное выше - конкретно про PhaseOne. Невозможность имения в этом формате 16-битных RAW-данных вытекает просто из процедуры распаковки. Для других форматов все не так прозрачно.

LibRaw 0.15. Alpha2

По сложившейся традиции, анонсирую LibRaw 0.15 Alpha2.

Изменения относительно альфы-1:

  • Кроппинг и отдельный вызов LibRaw::subtract_black() полностью работоспособны (в альфе-1 это было не так).
  • Исправлена генерация тоновой кривой для lossy DNG, теперь она полностью совпадает с таковой у dcraw (в альфе-1 временами было расхождение в младшем бите).
  • Вместо поканальных максимумов данных (color_data.channel_maximum) сейчас рассчитывается общий максимум (color_data.data_maximum). Для коррекции розовых облаков этого достаточно.
  • Компрессированные файлы PhaseOne распаковываются в raw-буфер полностью "как есть", коррекция по метаданным из файла (замазывание плохих пикселов, вычитание черного) идет на этапе постобработки или в raw2image(). Если вдруг кому нужны полностью неизмененные данные с этих задников - вот они, пользуйтесь.
  • Импортирована свежая dcraw, поддержка Samsung NX-1000 и Sony DSC-RX100.

Спешу сообщить, что ветка 0.14 развиваться далее не будет, если нужна поддержка новых камер, то используйте 0.15. "Альфа" в названии означает на сегодня только нестабильность ABI (и в меньшей степени - API), а в смысле реальной жизни - все (вроде бы) довольно стабильно.

LibRaw 0.15.0-Alpha1

По традиции, кроме формального анонса LibRaw 0.15 Alpha1 (Changelog под катом) еще и небольшой описание своими словами, что же именно сделано.
  1. Всосана свежая версия dcraw со всеми ее изменениями в логике (распаковкой в отдельный буфер, изменениями в расчете уровня черного и проч.).
  2. Поддержаны все форматы, поддерживаемые dcraw (+ немножко технических камер), в том числе:
    • DNG сжатый с потерями (и прочие упражнения с DNG, привнесенные 4-м Лайтрумом)
    • "Новые" Фовеоны. Ну, они условно новые т.к. формат поменялся еще в DP1, но вот начиная с DP1/SD15 и вплоть до самоновейшей SD1 Merill - все поддержаны.

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

    • Fuji X1-Pro. Как и в dcraw, для нее работают только две интерполяции, билинейная и VNG.
  3. Достигнута побитовая совместимость с выдачей dcraw 9.16 для всех протестированных форматов (а тестами не покрыты только очень старые мыльницы и задники Sinar).
  4. Все ускорения, сделанные в предыдущих версиях - временно припрятаны, но будут постепенно возвращены назад.

Формальный Changelog относительно версии 0.14.6:

LibRaw 0.14.7

По традиции, анонсирую и тут.

Вышла LibRaw 0.14.7 в которой поддержаны камеры, вышедшие в последние полгода:

  • Canon: 5D Mark III, G1 X, 1D X и Powershot SX200
  • Nikon: D4,D800/D800E и D3200
  • FujiFilm: X-S1 и HS30EXR
  • Casio EX-Z8;
  • Olympus E-M5
  • Panasonic GF5
  • Sony: NEX-F3, SLT-A37 и SLT-A57
  • Samsung: NX20, NX210 и NX200 с новыми версиями firmware
Если вы пользуетесь каким-то варезом, использующим LibRaw (RawDigger :), Darktable, digiKam, Photoacute, что-то использующее FreeImage, да и вообще этого софта развелось в последнее время), требуйте обновления LibRaw у авторов соответствующего софта.

Остальные камеры и форматы, добавленные в dcraw 9.15 (Lossy DNG, Fuji X1-Pro, новые Сигмы), будут поддержаны в LibRaw 0.15. Поддержать их в 0.14 (т.е. с сохранением бинарной совместимости библиотек) нет никакой возможности.

P.S. RawDigger будет обновлен не очень скоро. Там уже используется LibRaw 0.15 (пре-альфа), вернуться к 0.14 малореально.

Не корысти ради...

Граждане читатели,

если у кого есть примеры sRAW с камеры Canon 5D Mark III, не откажите в любезности их куда-нибудь залить (Дропбокс и так далее) и прислать мне ссылку (можно прямо тут в комментариях).

Актуально до вечера - я знаю у кого таких файлов взять, но сейчас там ночь.

Update (т.к. в ЖЖ не видны коменты в блоге): предмет съемки, ISO, выдержка - неважны совсем. Мне декодер протестировать. А вот оба режима sRAW (если в 5D3 их тоже два) были бы полезны, для полноты тестирования.

Update2: Спасибо приславшим, больше уже не надо :)

О странностях Nikon D800

Вот задали мне тут вопрос в почте, решил сам посмотреть и Фалломо.. удивился, вот!

Возьмем с Imaging-resource какой-нибудь кадр с серой шкалой. Я взял с ISO200 и самой короткой выдержкой, которую нашел (1 секунда).

Откроем его в RawDigger и поставим самплов (Alt-Click) по серой шкале (более светлые квадратики на серых плашках):

Дальше, соответственно, открываем табличку самплов (Ctrl-L или Menu-Windows-Samples) и втыкаем в нее:

А дальше пытаемся определить, а что у нас с Unity Gain т.е. как соотносятся средний сигнал по любому из каналов с квадратом стандартного отклонения.

RawDigger: беты под Mac и 64-bit Windows

Сим уведомляю о доступности RawDigger Beta для:

  • Mac OS X (32/64 bit, 10.5-10.7, а может быть и 10.4 тоже)
  • 64-bit Windows (Win7 и Vista - точно, под XP-64bit не тестировалось)

Скачивать отсюда.

Чуть более подробный анонс здесь

Жалобы на жизнь: Mac-версия, Windows-x64 версия.

Анонсы в русскоязычных местах приветствуются. Если вы хотите анонсировать в англоязычные форумы, возьмите правильные ссылки из английского анонса.

Картинка дня

Кто не понял про что это - смотрите теги :)

Qt - рулит. Ну то есть я не разобрался (пока?) с динамическими библиотеками, Frameworks и прочими страшными словами, поэтому с LibRaw слинковался статикой.

Ну, естественно, повылезало всякого, но умеренно:

О гистограммах

Камерная гистограмма и индикация переэкспозиции считаются хорошим способом контроля правильности съемочной экспозиции. Особенно у снимающих ETTR :)

Потратил несколько часов (полчаса на съемку, полчаса на анализ и дохрена времени на подготовку текста) и на примере моей основной камеры 5D Mark II родил очередной пасквиль:

Осторожно: гистограмма

Наслаждайтесь.

Комментировать можно тут, но лучше бы там, чтобы обсуждение не расползалось.

Как и шутили уже давно, лучший аксессуар для цифровой камеры - непрозрачная наклейка на задний экранчик, если бы не LiveView, я бы разбитый экран на этой камере и чинить бы не стал.

О светах у Nikon D3

А вот возьмем полностью засвеченный кадр с Nikon D3 и загрузим его в RawDigger.

Пойдем в Preferences (Ctrl-P), выключим Subtract Black, жмякнем OK и посмотрим на статистику по всему изображению:

Минимальный минимум по всем 4-м каналам - 15587. Откроем еще раз Preferences, включим обратно Subtract Black, Black Level: Manual, значение 15587:
(замечание: пользователи версии более старой, чем 0.9.9 не смогут так сделать, в старых версиях максимальное значение Black Level был 9999).

Что мы сделали? Мы (небольшой) диапазон колебания значений в засвеченном кадре растянули на весь диапазон яркостей.

Нам откроется прекрасное (трафик!):

RawDigger 0.9.9

Продолжаю анонсировать новые версии RawDigger.

Качаем тут: RawDigger-0.9.9-Beta-RU-Setup.exe, читаем полный changelog тут, жалуемся сюда.

Из существенных изменений:

Возможность задать координаты Selection вручную, "по пикселям"
Это нужно, в первую очередь, исследователям черной (маскированной) рамки. На разных кадрах она расположена в одном и том же месте и задание по координатам просто удобнее.
Вывод в CSV/CGATS файлы может учитывать системные установки decimal point
Это полезно, если вы используете отечественные региональные настройки и разделитель дробной части в вашем Excel (и т.п.) - запятая.

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

Установленный уровень черного (и Linear Raw Curve) влияет на RGB-рендеринг
Фишка может оказаться полезной тем, кто никогда не видел нелинейный RAW-файл (см. пример под катом), душераздирающее зрелище.

Вместе с тем, если вы подбираете уровень черного (например, чтобы потом поставить его руками при конверсии) - штука полезная.

Остальное все по мелочи
багфиксы, оптимизация, убрано местами странное поведение диалога Preferences, когда изменения вступали в силу только после переоткрытия файла.

...все что вы боялись узнать про RAW....

Согласно общепринятому мнению, "настройки ББ не влияют на RAW" (и для подавляющего большинства камер - это так).

Эту мысль часто толкуют расширенно "настройки JPEG не влияют на RAW", что, вероятно, тоже так. Точнее, я не видел никаких объемных экспериментов на эту тему, утверждать не могу, но для многих камер это наверное так. Хорошо бы проверить....

Следствие из этих тезисов такое: как не крути настройки камеры (очевидно, за исключением экспозиции, ISO и, вероятно, шумодава, сюда же и "расширенный динамический диапазон"), в RAW будет одно и то же.

И ничто не предвещало.....

А вот что намерял Panagiotis Markolefas на своей камере Panasonic GF1:

forums.dpreview.com/forums/read.asp?forum=1041&message=40731227

Если лень читать там, то вот мое изложение:

Про Лютера нашего Айвса

Luther-Ives condition become known in the beginning of the last century: a color capturing device with light detectors of three types might be used in correct color reproduction system if and only if DSS for every detector in the system might be represented as a linear combination of Cone Fundamentals (CFs).
отсюда

А вот эти самые Cone Fundamentals, взятые отсюда (в первом наборе контролов Quantal/1nm/plot):

Лютером-Айвсом цветовые ученые постоянно стращают, это прямо таки Священный Грааль цветовоспроизведенцев. И, исходя из общей теории всего, выглядит это разумно:
  • Есть некий первичный базис, эти самые Cone Fundamentals, говоря простым языком - спектральная чувствительность колбочек глаза.
  • Чтобы разговаривать с глазом в его "первичных координатах", хорошо бы уметь пересчитывать в этот самый первичный базис.
  • Что означает, что спектральная чувствительность сенсора (каждого канала) должна бы быть линейной комбинацией из базиса, тогда умножив на обратную матрицу - мы получим этот самый базис.
  • Никто не пишет, но очевидно что матрица из базиса в сенсор должна быть невырожденной, иначе обратную не построить.
Это - теория. Вполне похожая на правду, если бы не одно, но крупное НО.

Берем хорошую современную слайдовую пленку. Ну вот Kodak 100G. И берем из ее даташита кривые спектральной чувствительности. Вот они:

О цветопередаче

Еще один пост, родившийся из комментария.

Давид Мзареулян спрашивает:

Вот у нас сенсор (+АЦП). Сигнал от него, как я понимаю, линейный с высокой точностью. Даже если точность не очень высокая, то откалибровать отклик конкретной модели сенсора не должно составлять труда. Перед сенсором светофильтры. Они тоже линейно сворачивают спектр в скаляры. RGB-пространство тоже линейно, ну гамма там по яркости. Получается, что задача преобразования сигнала от сенсора в RGB линейная с точностью до одной единственной заданной гаммы. Значит, чтобы заставить монитор светиться так же как светился объект перед камерой, достаточно линейно преобразовать сигнал от сенсора. С точки зрения цвета это означает ткнуть пипеткой в нейтральный объект и таким образом найти взаимные коэффициенты для трёх каналов. Ну и гамму потом наложить. Всё, этого должно быть достаточно.

Что я упускаю? Потому что если я ничего не упускаю, то совершенно непонятно, почему разные конвертеры по-разному разрешают и передают цвета с разных камер а они таки их передают по-разному.

Отвечаем (чуть подробнее, чем в том комментарии в ЖЖ):

О чувствительности цифровых камер

Скопирую из комментариев в raw-rpp, снабдив ссылками, потому что тема всплывает настолько регулярно, что надо куда-то давать ссылку, а не писать по десятому разу одно и то же.

Реплика:

проблема в том,что для обычного фотографа,юзающего цифрозеркало не хватает ТЕЗИСНЫХ определений простой пример-мне для работы необходимо знать
-возможности матрицы при условных исо от 100 до 400 (изменение диапазона матрицы)пусть с использованием внешнего экспонометра
-возможности матрицы при 3200 и 5500 (исправление разбаланса по каналам)
Ответ:

Правильно, тезисных определений не хватает.

В частности, нету определения "чувствительности в RAW", стандарт который на эту тему есть - определяет в лучшем случае чувствительность для JPEG (честно скажу, стандарт читал давно, а освежал мнение только изложением его в википедии).

С другой стороны, для пленки оно даже хуже: для латентного изображения понятия чувствительности вовсе нет, а для проявленного - есть, но чувствительность (и вообще вся характеристическая кривая) сильно зависят от режима проявки. А проявить, в отличие от RAW, можно только один раз.

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

Поэтому практический совет достаточно очевидный

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

    То что ACR (а значит и LR) поднимая полутона режет при этом света (при настройках по нулям) - будет для проделавшего этот эксперимент (не)приятным сюрпризом.

  2. Как минимум три года есть инструментарий (имени меня), который позволяет посмотреть "а что там в RAW на самом деле". Мой текст о запасе в светах у 5DMark II на libraw.su - датирован 20 февраля 2009 т.е. ровно 3 года назад.

    Не говоря о поминавшемся тут уже свежем туле RawDigger, который позволяет это проделать удобно. Ну и Rawnalyze тоже был/есть.

Но, конечно, то что у Adobe есть скрытая поправка в ~0.3-0.5 стопа, плюс "неявная" поправка, которая бывает тоже в полстопа (а бывает, наверное, и больше) - это такое интересное открытие, которое каждый делает для себя сам, так уж повелось испокон веку.

Анонс: калибровка экспонометра цифровой камеры по RAW-данным

Хочу напомнить, что сайт RawDigger - это не только ценный мех сайт программы, там будут публиковаться тексты про применение RawDigger в обычной фотографической практике, а не только для фотодро.. глубокого технического анализа камер.

Сегодня опубликован очередной опус:

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

Прошу любить и обсуждать. Лучше там, но можно и тут.

RawDigger 0.9.8

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

Встречайте: RawDigger 0.9.8. Прошу любить и жаловаться.

Изменения космические косметические:

  • Гистограмма всего файла вызывается/прячется по Ctrl-H
  • Вызов File-Open, File-Prefs через шорткаты - работает из любого окна программы
  • Окончательно (хочется надеяться) полечено падение при изменении настроек без открытого файла
P.S. Впрочем, все пользователи программы, кто не хакнул обращение к интернету при старте, об этом апдейте узнают автоматически.

RawDigger 0.9.7

RawDigger

Пока у пользователей RawDigger не выработалась привычка читать анонсы на сайте проекта, буду частично дублировать их тут.

Первая неделя публичного тестирования выявила некоторое количество проблем и недоработок, спасибо нашим пользователям! Версия 0.9.7 правит все замеченные ошибки и добавляет те новые свойства, которые оказались интересными и несложными в реализации.

То что не реализовано пока - сохранено в TODO, надеюсь что руки постепенно дойдут до всего.

Существенные изменения

  • Необходимость сети для запуска
    • Проверка обновлений учитывает системные настройки интернет-соединения. Если вы работаете через proxy, поставьте правильные настройки в Control Panel - Internet Options - Connections - LAN Settings.
    • Можно однократно отключить проверку обновлений, запустив noCheckUpdates.reg (находится в каталоге программы, ProgramFiles [(x86)]/LibRaw/RawDigger при установке по-умолчанию ), эта настройка сбрасывается при запуске.
    В результате, сидящие за proxy или вовсе без интернета имеют возможность оценить наше изделие.

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

  • Имя файла для открытия может быть передано в командной строке. Программа воспринимает первый переданный аргумент как имя файла и пытается его открыть. Соответственно, можно драгать-дропать файл на иконку приложения.
  • Поддержан Drag-and-Drop файлов в окно приложения. Если передается группа файлов, открыт будет только один файл (первый, но сортирует операционная система).
  • Новые настройки:
    • Новая настройка "предупреждать о несохраненных самплах в списке самплов".
    • Новая настройка "сохранять размер/позицию главного окна" (при запуске позиция будет восстановлена только если настройка стоит).
    • Новая настройка "запоминать рабочий каталог" облагорожен порядок обхода контролов по Tab
  • Показ данных всех каналов RAW в greyscale (режим взаимоисключающий с 2x2 pixels). В этом режиме может быть показан и не RGB(G) RAW-файл.

RawDigger: все что вы хотели узнать про RAW, но боялись спросить

RawDigger В публичное бета-тестирование выпущена программа RawDigger, предназначенная для просмотра, изучения и анализа RAW-файлов. Она позволяет:
  • Смотреть глазами на сам файл в RAW-виде (и в RGB тоже).
  • Смотреть значения RAW-данных для отдельных пикселов в RAW-файле.
  • Считать поканальную статистику RAW-данных по файлу или по произвольному прямоугольному участку.
  • Строить гистограммы RAW-данных по файлу или по его участку.
  • Сохранять статистику и гистограммы в удобном виде.
  • Сохранять тоновые кривые RAW (для тех файлов, где они есть).
Поддержаны важные особенности RAW-файлов:
  • Вычитание/невычитание черного (c поканальной регулировкой уровня черного при желании)
  • Включение/выключение тоновой кривой.
  • Показ/непоказ черной рамки.
Кроме того, есть довольно длинный список TODO (который мы надеемся расширить с помощью пользователей), функциональность будет расширяться.

Pages

Subscribe to Обработка RAW