LibRaw

LibRaw 201910 snapshot

Выпущен свежий snapshot LibRaw:

Изменений много, поэтому переводить обратно с английского не буду.

Ключевое долгожданное изменение - поддержка Canon CR3 - присутствует. Хочу сказать публичное громкое спасибо Алексею Данильченко: Алексей, СПАСИБО, без тебя мы бы вряд ли справились сами.

Про Nikon Z7

Все форматы записи/режимы кропа Nikon Z7 поддержаны в очередных бета-версиях:

RawDigger: https://www.rawdigger.com/news/rawdigger-1-2-25-beta

FastRawViewer: https://www.fastrawviewer.com/blog/FastRawViewer-1-4-10

Если у кого есть Nkon Z6 на руках, то мы очень нуждаемся в следующих примерах:

  1. Uncompressed: 12/14 bit, все режимы кропа (FX, DX, 4:5, 16:9, 1:1) - эти просто очень нужны, с очень большой вероятностью мы 14bit/uncompressed просто нормально не читаем (да и про 12 бит уверенности нет).
  2. Compressed: 12/14 bit lossy/lossless, все режимы кропа - эти файлы должны уже сейчас читаться нормально, но нужны примеры для проверки.
  3. sRAW/mRAW - тоже должны читаться, но нужны примеры для проверки.

LibRaw 0.19 (Beta1)

LibRaw 0.19 (beta1) (github)- это не только ценный мех, но и:

  • 1014 поддержаных камер
  • улучшенная обработка вложенных IFD в DNG
  • улучшенный разбор метаданных разных вендоров
  • улучшенная обработка превьюшек
  • вызов open_bayer для тех самоделкиных, кто дамп данных с сенсора имеет уже в памяти и без метаданных.
  • отсутствие поддержки LibRaw-demosaic-pack-GPLn, вместо них теперь сделаны callbacks, надеюсь что найдутся энтузиасты, которые demosaic packs прикрутят новым методом (а не через #ifdef как раньше).

Прошу любить, тестировать и жаловаться.

Про LibRaw, RPP, баланс белого, FRV, UniWB и синергию

Чудовищный получился заголовок, но отражает суть.

Как я уже писал, RPP переходит на LibRaw для разбора RAW-данных. Пытливые пользователи заметили, что мы разбираем не все пресеты баланса белого у камер Kodak. Разобрали и их. Потом увлеклись и разобрали эти пресеты еще и для камер Canon, Olympus, Sony (и будем стараться поддержать еще).

Дальше, зоркий глаз заметил, что в баланс, который мы называем Camera Auto - пишется баланс белого, определенный датчиком камеры, даже если для съемки использовался какой-то пресет...

Просьба к пользователям Nikon Coolscan

Уважаемые пользователи Nikon Coolscan, если таковые еще есть среди моих читателей!

К вашему сканеру прилагается программа Nikon Scan. Она умеет писать NEF-файлы. У меня даже один такой есть.

Хочу вот прикрутить поддержку этих файлов к RawDigger и FastRawViewer. Да и вообще, к LibRaw, пусть все LibRaw-based программы тоже этого могут.

Но для тестирования - одного файла явно маловато.

Пожалуйста, ради легкости работы затем (с тем же FRV), возьмите любой кадр, отсканируйте его в 8- и 16-битном режиме, положите куда-нибудь, откуда легко скачивать файлы и пришлите ссылку мне. Можно в комментариях к этой записи, можно личной почтой на lexa@lexa.ru. Идеально - два кадра, слайд и негатив.

Вам же будет лучше.

P.S. На текущую минуту идеи приделывать инверсию негативов к FRV/RD нет, то есть это больше для слайда. Но если будет заметный спрос - приделаем.

P.P.S. Пойду еще в club.foto.ru напишу

P.P.P.S Мне тут в коменты спросили "подождет ли до выходных", а я вместо того, чтобы опубликовать (анонимный) комментарий - его ошибочно стер. Рука дрогнула. И у меня ничего, ни координат ни возможности стертое восстановить. Да, конечно подождет.

LibRaw 0.16 (релиз)

Вышла LibRaw 0.16-Release.

Все существенные изменения тут описывались, детальнее - смотрите в Changelog в дистрибутиве.

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

Ситуация с более старыми версиями:

  • 0.16 - поддержка новых камер будет добавляться, баги - исправляться, до выхода 0.17-беты.
  • 0.15 - если будут найдены существенные баги ("в безопасности") - будут исправления.
  • 0.14 - лежит на сайте, обновлений никаких не будет.
  • 0.13-0.12 - удалена с сайта, забыли и проехали. Требуйте от ваших вендоров обновлений.
Если кто пользуется darktable, передайте автору, что с 0.14.7 хорошо бы перескочить на 0.14.8 (последняя в ветке 0.14), а лучше на 0.15.4, а еще лучше - на 0.16

Отдельно хочу заметить, что за 8 месяцев с релиза 0.15.0 были добавлены 47 камер. То есть темп "полторы камеры в неделю" - индустрия уверенно держит.

LibRaw 0.16 Beta1

Собрался с силами, и выпустил LibRaw 0.16 Beta1.

Полный Changelog там есть, поэтому я кратко про эту версию:

  • Поддержано 12 новых камер (относительно Alpha3, которую я тут не анонсировал, но это за месяц с ее выхода 22.10). Всего их стало 613, если я в списке поддержаных ничего не пропустил.
  • Обновлены цветовые данные еще для пяти, теперь у всех поддержаных - полноценный профиль.
  • Финализирована новая поддержка Foveon: поддержаны маленькие и промежуточные размеры для старых камер (SD9-SD15 и до-Мерриловские DPxx).
  • Улучшен разбор EXIF для Nikon: берем значения ISO из нестандартных тегов, берем уровень черного для D5300 (да, в D5300 черный не в нуле).
  • Ну и по мелочи там.
Вот про количество новых камер хочется сказать особо:
  • 45 новых камер с момента выпуска 0.15.0 т.е. с начала июня. За лето и осень, полгода.
  • 25 новых камер (если не сбился при ручном подсчете) после Alpha1, которая вышла 22 сентября. Т.е. за два месяца. Осенний камерапад.
Помимо себя похвалить*, хочется заметить, что темп выхода новых камер не спадает. За май 2012-май 2013 (я тогда с выходом 0.15.0 посчитал) их вышло 75. Сейчас за лето-осень - около 40 (из 45 поддержаных за лето-осень, несколько - "весенние", до которых или руки не доходили, или примеров файлов не было).

Понятно, они неравномерно анонсируются, есть пики (осень, зимние-весенние выставки, вот еще август обычно), но темп "полторы камеры с RAW в неделю" - сохраняется.

Я это к тому клоню, что если производитель софта, который вы используете, использует версию 0.15 (а то и более старую: подразумеваем в первую очередь darktable, остальные не так тормозят), вы ему намекните, что пора апгрейдиться то.

А если производитель софта до сих пор самостоятельно всасывает dcraw.... то последний публичный апдейт у нее был в июне. И счетчик камер - на 84 меньше, все новье последних месяцев - пока не поддержано.

* Мы научились подпирать большинство новых камер как только появляются первые самплы, причем профили делаем самостоятельно, от Adobe в этом месте не зависим. Panasonic GM1 был вообще поддержан до официального объявления, я даже коммит в публичный репозиторий придержал до этого объявления.

LibRaw 0.16 Alpha2

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

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

  • LibRaw теперь знает размер черной рамки на всех фовеоновских камерах.
  • Для SD1 и всех Merrill-ов есть приемлемый цветовой профиль.
  • Для DPxx (pre-Merrill) цветовой профиль весьма приблизительный.
  • Исправлен memory leak в используемой библиотеке x3f-tools.
Но и для остальных камер произошли заметные изменения:

LibRaw 0.16 (Alpha1)

Мастер-версия LibRaw получила официальный номер 0.16-Alpha1 и доступна для скачивания.

Это означает, что все глобальные идеи по развитию закончились (на ближайшее время) и нестабильности API - не ожидается. Сама по себе 0.16 достаточно стабильна, в RawDigger используется именно эта версия (и всегда используется "девелоперская", а не "стабильная"), проблем не было.

С полным списком изменений относительно версии 0.15 можно ознакомиться в changelog, ниже откомментированы основные места:

О "списках уязвимостей в программах"

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

Читаем:

LibRaw версии до 0.15.1

LibRaw-demosaic-pack-GPL2 версии до 0.15.1

LibRaw-demosaic-pack-GPL3 версии до 0.15.1

Имею сказать:
  • Не являясь специалистом в области ИБ, не могу сказать, является ли выход за пределы массива по фиксированному(!) адресу +4GB-1 (потому что там всегда 0xffffffff в индексе) возможностью выполнения произвольного кода. Возможно. Равно как является ли проблемой такой псевдокод a = malloc(..); free(a); free(a);. Возможно.
  • Эти проблемы в LibRaw 0.15.0 - были. Возможно, они серьезные, хотя мне так не кажется. Представить, что "удаленного пользователя" допустят до кода коррекции экспозиции - не могу.
  • Вот что я знаю точно:
    • Этих ошибок нет в LibRaw-demosaic-pack-GPL3, оно тут никоим боком.
    • этих ошибок нет в "версии до 0.15.1". Они есть в 0.15.0, а ветки 0.7...0.14 - не подвержены (по причине отсутствия соответствующего кода).
    Что позволяет мне предполагать, что никакого анализа никто не делал.

    SecurityFocus пишет что дескать vendor reported. Но ни одна скотина не пыталась сконтактировать с вендором и узнать подробностей.

Я собственно к чему - что теперь читая всякие security reports буду делить минимум на десять.

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

  • Если вы вендор - не надо репортить проблемы подробно (double call to free), все что вы написали - будет использовано против вас. Пишите просто "исправлена ошибка в обработке битых файлов Foveon"
  • Авторы этих репортов - не анализируют что сделано на самом деле, в каких версиях была ошибка и т.п. Соответственно нужно к этим репортам относиться: наличие репорта не означает проблемы (а отсутствие - отсутствия проблемы).

Про LibRaw C API

Граждане разработчики!

Кто-то, не помню когда, не помню где (в почте - не нашел!) просил у меня сделать аналог LibRaw::COLOR(row,col) (т.е. номер канала байера у конкретного пиксела) в C-API

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

Я его вам сделал. libraw_COLOR(...). Есть в master (девелоперском) бранче на GitHub.

LibRaw 0.15.1

Вот кто видел версию .0, чтобы сразу работала? Правильно, никто!

LibRaw 0.15.1:

  • Исправлен неверный расчет максимума данных для файлов Panasonic
  • Проверка на выход за пределы буфера в коде коррекции экспозиции

Берут где всегда

LibRaw 0.15.0 Release

LibRaw 0.15 уже давно используется в боевых проектах (скажем, в RawDigger), собственно я ее ради RawDigger и правил на ходу и она всегда была "релизного качества".

Пришла пора эту релизность формально закрепить, а версию 0.14 начать предавать забвению.

Вот наиболее важные изменения, суммированные по всем бетам:

Поддержка новых камер

  • Adobe DNG: поддержка Fast Load DNG (LightRoom 4.x), поддержка lossy-compressed DNG (LR 4.x, необходима сборка с libjpeg 6+)
  • Canon: G1 X, SX220 HS, EOS 5D Mark III, EOS 650D, EOS 1D-X, 100D (Rebel SL1), 700D (Rebel T5i),6D,EOS M,G15, S110, SX50
  • Casio: EX-ZR100,EX-Z8
  • Fujifilm: X-E1,X20, X100S,SL1000, HS50EXR,F800EXR, XF1, X-S1, HS30EXR, X1-Pro
  • Imacon Ixpress 39Mpix: Multishot-файлы
  • Leica: D-LUX6 и V-LUX4
  • Nikon: D4, D3200, D800, D800E,1 J2, 1 V2, D600,1 J3, 1 S1, Coolpix A, Coolpix P330, Coolpix P7700, D7100
  • Olympus: E-M5, XZ-2, XZ-10, E-PL5, E-PM2
  • Panasonic: G5, G6, DMC-GF5, FZ200, GH3, LX7
  • Pentax: MX-1, K-5 II, K-5 IIs, K-30, Q10
  • Samsung: EX2F, NX20, NX210, поддержка нового firmware NX100
  • Sigma: SD15,SD1, SD1 Merill, DP1, DP1S, DP1X, DP2, DP2S, DP2X (только в Demosaic-pack-GPL2)
  • Sony: SLT-A58, RX-1, SLT-A99, NEX-5R, NEX-6, NEX-F3, SLT-A37, SLT-A57

Изменения в API

LibRaw 0.15.0-Beta4

Тем временем вышла LibRaw 0.15 Beta4.

Изменения:

  • Исправлено возможнле переполнение буфера, возникавший при использовании библиотеки RawSpeed для распаковки некоторых форматов файлов (проявилось на Samsung NX-100, но вообще подвержены очень многие некомпрессированные форматы)
  • Добавлены новые методы
    C++ API: LibRaw::recycle_datastream(),
    C API: libraw_recycle_datastream()
    и новый код ошибки LIBRAW_INPUT_CLOSED для вызовов unpack/unpack_thumb()

    Эти методы/вызовы позволяют освободить file handle (и ассоциированные буферы), если ваше приложение больше не собирается вызывать unpack() или unpack_thumb() и, сдедовательно, может разблокировать файл и освободить память, которая использовалась для чтения RAW-файла.

  • Поддержаны Multishot-файлы Imacon Ixpress 39Mpix
Первое изменение - это замазывание ошибки в RawSpeed, за буфер вылазит именно она (а значит надо дать буфер побольше). Это - цена оптимизации, выбирать по k бит и каждый раз проверять не вылезли ли - очень дорого.

LibRaw 0.15.0-Beta3

Вышла LibRaw 0.15-Beta3, доступна в обычном месте.

Никаких серьезных внутренних изменений нет, только поддержка новых камер:

  • Canon 6D и EOS M
  • Casio EX-ZR100
  • Fujifilm X-E1
  • Leica D-LUX6 and V-LUX4
  • Nikon P7700
  • Olympus XZ-2
  • Panasonic G5
  • Samsung EX2F
  • Sony RX-1

О процессинге RAW: плавучка или целое

Обработка RAW в плавучке позволяет избавиться от артефактов вылета за диапазон, да и вообще получить более качественную картинку.

Тем интереснее обратные случаи.

Возьмем вот такой вот кадр:

Это D800 с его приколами в светах, вот на света и посмотрим.

Если обработать картинку dcraw (или LibRaw, которая дает побитово такой же процессинг, если автоматическое определение максимума отключить), то в светах в "середине верха кадра" мы увидим такое вот:

LibRaw 0.15.0-Beta2

По традиции, анонсирую LibRaw 0.15-Beta2

Полный changelog доступен у библиотеки в гнезде, а тут я остановлюсь только на самом существенном:

  • Поддержано 20 новых камер:
    • Canon: G15, S110, SX50
    • Fujifilm: F800EXR, XF1
    • Nikon: 1 J2, 1 V2, D600
    • Olympus: E-PL5, E-PM2
    • Panasonic: FZ200, GH3, LX7
    • Pentax: K-5 II, K-5 IIs, K-30, Q10
    • Sony: SLT-A99, NEX-5R, NEX-6
  • RawSpeed может использоваться не только для байеровских данных, но и для полноцветных (3-цветные DNG, sRAW).
    Правда если вы захотите использовать эту фишку, то вам придется запатчить RawSpeed. Тот же патч положен в дистрибутив LibRaw (в каталоге RawSpeed).
    Пользы от RawSpeed достаточно много даже для нежатых DNG: к примеру, 60-мегабайтный 3-цветный нежатый DNG распаковывается за 130мс родным кодом LibRaw и за 70мс - при помощи RawSpeed.
  • В API добавились флажки, позволяющие понять - использовалась ли библиотека RawSpeed, а если да, то к чему это привело.
  • В очередной раз перебраны потроха (интересно только тем, кто в них копается, сам LibRaw API не изменился)
    • В 0.15-Alpha-Beta1 в imgdata.rawdata были два указателя: raw_image указывал на буфер с байеровскими данными, а color_image - на буфер с 4-компонентными RGBG. Ну то есть для байеровских RAW первый был не нулевым, а для полноцветных - второй.

      В Beta2 этот самый color_image ращеплен на два: color3_image ненулевой если в буфере (на который он указывает) лежат 3-компонентные данные, а color4_image - если данные надо рассматривать как 4-компонентные.

    • Введенный в Alpha4 параметр imgdata.sizes.raw_pitch (шаг строк в RAW-буфере) теперь в байтах, а не в пикселях. И один и тот же raw_pitch используется для доступа к imgdata.rawdata.raw_image, color3_image, color4_image
    Кому интересно совсем в деталях - читайте исходник LibRaw::raw2image() и понятно будет все.

LibRaw 0.15.0-Beta1

Зарелизилась LibRaw 0.15 Beta1.

Изменения:

  • Правильная установка размеров видимой области для Nikon D800E
  • Поддержка DNG-файлов сделанных из RAW Fuji X-Pro1
  • Встроенные описания камер для RawSpeed обновлены до версии r479
  • Win32/C-API: добавлены вызовы libraw_open_wfile/libraw_open_wfile_ex()
  • Новый бит в поле process_warning LIBRAW_WARN_RAWSPEED_UNSUPPORTED, устанавливается (вместе с LIBRAW_WARN_RAWSPEED_PROBLEM) если RawSpeed сообщила, что камера не поддерживается.
  • Запрещена распаковка библиотекой RawSpeed для некоторых форматов (которые распаковываются несовместимо с дальнейшей обработкой LibRaw.

В даунлоадах выложены и бинарники (Win32/Mac), но без поддержки RawSpeed (дабы не гемороиться с лицензией), нужен RawSpeed - собирайте с ним сами.

RawDigger + RawSpeed, вторая попытка

Если репортить об ошибках, то они будут исправлены. Качаем-тестируем RawDigger+RawSpeed, вторую попытку:

Исправлена "ошибка строчной развертки" для форматов, где использовался RawSpeed, а длина строки RAW была некратна 8. Таких, на удивление, немного.

Пишу новым сообщением для тех, кто через RSS читает.

Mac: RawDigger+RawSpeed

Граждане фотографы-маководы!

Помимо виндовой версии, RawDigger с встроенным RawSpeed теперь доступен и для Mac:

Качаем: по ссылке из этого поста

Это альфа-версия: тестировано на нескольких маках, теперь хочется на живых тестерах.

Что изменилось:

  • Открытие файлов .CR2, .NEF, compressed-.DNG - должно стать заметно быстрее. Файлов .ARW, .PEF, .SRW, .ORF, .RW2 - несколько быстрее (незаметно).
  • Для файлов с камер Sony (не всех) - значения пикселов и уровня черного умножатся на 4.
Других видимых изменений быть не должно, все остальное должно быть как в версии 0.9.12. Если у вас изменилось что-то еще, особенно в худшую сторону - пишите.

Второе невидимое (я надеюсь) изменение - это переход с Qt 4.8.1 на Qt 4.8.3.

Update: достоверно известно о глюках со старыми .CR2 (30D, 5D), репортить уже не надо.

Pages

Subscribe to LibRaw