LibRaw 0.16 Alpha2

Тем временем, зарелизилась LibRaw 0.16 Alpha2.

Основные изменения касаются Фовеонов:

  • LibRaw теперь знает размер черной рамки на всех фовеоновских камерах.
  • Для SD1 и всех Merrill-ов есть приемлемый цветовой профиль.
  • Для DPxx (pre-Merrill) цветовой профиль весьма приблизительный.
  • Исправлен memory leak в используемой библиотеке x3f-tools.
Но и для остальных камер произошли заметные изменения:
  • Поддержаны камеры (включая цветовые данные т.е. dcraw_process() нормально работает):
    • Canon Powershot G16
    • Hasselblad Lunar, Stellar
    • Pentax K50, K500, Q7
    • Samsung Galaxy NX (EK-GN120)
    • Sony NEX-5T
  • Поддержаны камеры без цветовых данных (работает распаковка RAW, определение черной рамки, установка уровня черного т.е. все фазы до dcraw_process(). Постпроцессинг даст условный цвет)
    • Canon Powershot S120
    • Fujifilm X-A1
    • Nikon Coolpix P7800
  • Дополнительные проверки размера файла, позволяющие отвергнуть битые данные на более ранней стадии.
  • Исправлена несовместимость DHT-демозаики с реализацией OpenMP компилятором MS Visual Studio.

Comments

"камеры без цветовых данных" и с равками - это как, где подробнее поглазеть можно?

Ну там поставлен какой-то профиль. Красное - красновато, зеленое - зеленовато. Профиля нормального пока нет.

1. Вопрос про функции COLOR и subtract_black: когда используется rawdata, а когда image?

2. От чего зависит, что из raw_image/color3_image/color4_image используется?

1) COLOR(row,col) - возвращает цвет данного пиксела (число в диапазоне 0..3), причем row/col передаются в координатах видимого изображения (для masked pixels, впрочем, цвет особого смысла обычно не имеет).
2)subtract_black() - вычитает черный из image[]

3) RAW-данные бывают 3-х видов
а) одно 16-битное число на пиксель (байер или монохромная камера) - хранится в raw_image
б) три 16-битных числа на пиксель (Фовеон, Linear DNG, sRAW) - хранится в color3_image
в) четыре 16-битные числа на пиксель, правда 4-е обычно нулевое (кроме sinar 4shot) - хранится в color4_image
Так получается, что унаследованные от dcraw декодеры (sRAW, Linear DNG, Foveon в demosaic-pack-GPL2) извлекают в 4 компонента, а новые (RawSpeed, новый декодер Foveon) - в 3 компонента. Т.е. если вы хотите работать не только с байером, то нужно и color3 и color4 обрабатывать.

subtract_black заполняет image или нужно вручную вызывать raw2image?

Нужно вручную вызывать raw2image

На самом деле, "если вы точно знаете что делаете", есть еще вызов raw2image_ex(int do_subtract_black), который делает raw2image+subtract_black одним вызовом (и, соответственно, быстрее т.к. по памяти два раза не елозит).

Но он категорически противопоказан для некоторых видов данных, например для панасоников у которых bad pixels имеют нулевое значение (а черный - выше нуля), для таких надо сначала замазать дырки, а уже потом вычитать черный.