(Р)эволюция продолжается: LibRaw 0.7.0 Alpha-0

Jan 05, 2009 23:45



Вышла LibRaw 0.7.0-Alpha0.

Это довольно важный релиз, открывающий массу новых (но пока - потенциальных) возможностей для разработчиков, над некоторыми вещами я в фоновом режиме думал с начала осени и тороплюсь поделиться:


  • Можно отключить вычитание "нуля" (уровня черного) и замазывание нулевых пикселов
      В коде dcraw, частично прямо в процессе чтения RAW-данных (втч. для камер Canon), частично на стадии постобработки, производилось вычитание уровня черного и замазывание пикселов с нулевыми значениями. В результате, 'RAW' данные переставали таковыми быть.
      В новой LibRaw эту фильтрацию можно запретить, а дальше обходиться с "истинно-RAW" данными самостоятельно - либо вовсе ничего не вычитать (полезно для анализаторов шума и подобных приложений), либо вычислять ноль самостоятельно и самостоятельно же его вычитать.
      Эта функциональность поддержана для всех камер, кроме задников PhaseOne и камер на основе Foveon. PhaseOne имеют свои калибровочные данные, которые пока не лезут в структуры данных LibRaw, а копаться в коде Foveon нет желания по многим причинам.
  • Для некоторых камер доступны данные черной рамки
      Пресловутая "черная рамка" (маскированные пикселы) доступна через LibRaw API. Пока она читается только для небольшого набора камер (все Canon-ы, Adobe DNG, compressed Nikon NEF), но этот список будет расширяться. Конечно, рамка есть не у всех камер (скажем, у Sony A900 ее просто нет, а у Nikon D3 - есть, но пока непонятно какой толк с нее можно получить), но для тех у кого есть - для тех сделаем ее чтение. Скорее всего с исключениями: я не планирую заниматься Foveon-ом, а попытка считать рамку из файла Fuji S5 (который повернутый) ввела меня в депрессию. Но для большинства нормальных байеровских камер - сделаем (опять же, попытка разобраться в sRAW тоже ввела в депрессию, но в другую).
      По рамке можно посчитать, например, уровень черного или темновой шум или поканальный шум и что-нибудь хорошее с этим знанием сделать (вычесть из сигнала или еще как надругаться).
  • unprocessed_raw - тул для мезурбатора
      В попытках анализа RAW многие используют dcraw -D. Но немногие добрались до исходников и прочитали, что же такое "необработанный RAW" (а там вычитание черного, нормализация данных на полный диапазон и много всего другого веселого.
      unprocessed_raw всех этих глупостей не делает: сказано необработанный, он и выдает необработанный. Если для данного формата поддерживается чтение черной рамки, она будет включена в выдачу.
  • Потенциальная возможность писать обработку черного и шумопонижение (втч. подавление banding) под каждую камеру отдельно.
      Ничего готового в этом месте пока нет, но уже просверлены технологические отверстия :) - пользователь библиотеки может ими воспользоваться и затем качество картинки для отдельных камер внезапно будет улучшаться без изменения вызывающей программы.
      В первую очередь, конечно, будут поддержаны интересующие меня камеры.

Скачать данную версию (включая и прекомпилированную Win32/Mac/Linux версию с готовым unprocessed_raw/.exe/) можно где обычно, там же имеется чуть более подробный Changelog.

Документация для разработчика включена в дистрибутив и лежит на сайте LibRaw

Автоматический кросс-пост из блога автора.

обработка RAW, libraw, фото

Previous post Next post
Up