LibRaw

RawDigger + RawSpeed = RawDigger

Можно попробовать: качаем по ссылкам из этого поста.

В чем фишка:

Большие файлы CR2, NEF, жатые DNG - открываются на 300-500мс быстрее на быстрой машине (i7-2600k@4.5Ghz), на медленных разница должна быть еще заметнее. На других поддерживаемых RawSpeed форматах (Sony, Panasonic, Olympus, Pentax, Samsung) - разница тоже есть, но не такая большая. Все неподдерживаемые форматы открываются, как и ранее, LibRaw.

Больше (кроме файлов Sony о которых ниже) - фишки не должно быть (еще чуть больше памяти используется). Собственно, это и хочется проверить.

Сравнить можно открыв закладку Preferences, менять положение галки и жать Apply. Если при этом не меняются статистики, гистограммы и т.п. - то все отлично.

Что мне интересно:

  • Есть ли какие-то форматы кроме Sony, где данные и/или результаты рендеринга заметно отличаются. Тестовые файлы пока не нужны, достаточно марки камеры.
  • Может оно вообще глючит и не работает, тоже интересно.
Про Sony:

RawSpeed возвращает значения пикселов для Sony в 4 раза бОльшие, чем LibRaw. Это ни на что не влияет в реальной жизни. При этом, конечно, на такое плавание уровня черного машинка не рассчитана и при нажатии Apply и стоящей галке 'Reset Black Level on file load' - ничего не поресетится в диалоге.

Это нормально и надо забить т.к. в следующих версиях поддержка Sony RawSpeed-ом будет отключена: разница в скорости для этого формата копеечная (не сотни миллисекунд как для CR2, а десятки), изменение значений в 4 раза рвет башню, а всякие полезные вещи вроде 'ARW2 Hack' и отключения тоновой кривой - не работают т.к. RawSpeed ничего такого не умеет.

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

LibRaw+RawSpeed=LibRaw :)

RawSpeed - это такая библиотека раскодирования RAW, которая:
  1. Очень быстрая (к примеру, 21-мегапиксельный файл от Canon 5D2 распаковывается на моей машине за 230мс, а код на основе dcraw делает это за 750мс. Притом, это сильно улучшенный мной код, до улучшений было больше секунды, насколько я помню).
  2. Поддерживает мало форматов, правда все они популярные (свежие камеры Canon, Nikon, Olympus, Panasonic, Pentax, Samsung и DNG-файлы).
Авторы darktable давно просекли эту фишку и используют LibRaw как fallback на неизвестных камерах, а как основную библиотеку для открытия RAW - используют RawSpeed.

В то же время, RawSpeed распаковывает данные в буфер с очень похожим (но немного разным) форматом, поэтому использовать RawSpeed в качестве читалки файлов изнутри LibRaw (но иметь при этом единый API, единый постпроцессинг и т.п.) - было делом техники. И эта техника - применена в LibRaw 0.15-Alpha4.

Что получилось

  • LibRaw::open_file()+LibRaw::unpack() /т.е. распаковка/ - в ~3 раза быстрее на CR2, в ~2-2.5 раза быстрее на NEF, в 1.5-2 раза быстрее на прочих поддерживаемых форматах. Реально это заметно на больших NEF и CR2 (выигрыш в 400-500 миллисекунд на моей i7-2600K @4.5Ghz), соньки и раньше распаковывались быстро, а у остальных форматов редко бывают совсем уж большие файлы.
  • dcraw_emu -h ..список из 182 файлов.. - без RawSpeed было 150 секунд, стало 100 секунд. Разница "не в 2-3 раза" потому что постпроцессинг не изменился (хотя с -h он и так быстрый)

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.

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 малореально.

LibRaw 0.14.0 (Release)

После трех месяцев разработки и тестирования вышла LibRaw 0.14.

По уже сложившейся традиции, помещу тут несколько отредактированный Changelog.

В этой версии одно принципиальное изменение, влекущее за собой множество мелких:

Разрешены повторные вызовы постобработки (LibRaw::dcraw_process) без переоткрытия файла парой вызовов open()/unpack(). При этом, постобработку можно повторять меняя любые параметры обработки (за исключением выбора кадра через shot_select).

В сочетании с повышением скорости обработки, на (очень) приличной современной машине можно получить:

  • "Почти realtime" показ изменений изображения при смене параметров RAW-конвертации в режиме половинного разрешения. На 40-мегапиксельное изображение уходит примерно 250 мсек (т.к. half-mode, то выдается 10 мегапикселей, что сильно больше любого современного монитора).
  • "Совсем realtime" показ изменений небольшого окошка (например, вокруг курсора) в полном разрешениии с настоящей демозаикой (получается 30-50 кадров/сек для окошка 450x300)
Осталось дождаться, пока это подопрут разработчики конверторов. digiKam обещал, но пока еще не сделал...

LibRaw 0.14 Alpha

По сложившейся традиции, анонсирую тут новую major версию LibRaw, которая пока существует в альфа-варианте.

Скачать ее можно в обычном месте, почитать формальный Changelog там же, а тут хочется рассказать об изменениях человеческим языком.

До сего момента жизнь в LibRaw была устроена просто: открыл файл (LibRaw::open()), распаковал (LibRaw::unpack()), если своего постпроцессинга нет, то попользовался нашим (LibRaw::dcraw_process()). Если какие-то параметры поменялись, то все сначала, open, unpack и так далее.

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

Минус - тоже понятно какой: поменял ББ, даже в интерактивной программе и .... опять надо распаковывать RAW, а скажем в кэноновских CR2 тамошний Хаффман (lossless JPEG) устроен так, что хрен распараллелишь его распаковку. И секунда-две только на 30-мегабайтный CR2 - просто в природе вещей.

Что делаем? Правильно, меняем память на скорость.

Начиная с 0.14 байеровские данные распаковываются в один буфер, а весь постпроцессинг идет в другом. Для байеровских камер это penalty по памяти в 25% (40Mb для 20-мегапиксельной камеры), зато счастье велико есть. Для не-байеровских камер потери больше (вдвое), но там и кадры, как правило, небольшие (sRaw - 3-10 мегапикселов, фовеоны - 4Mpix), а владельцы Sigma SD1 или multi-shot задников могут и пару гигабайт памяти докупить.

LibRaw 0.13-Beta1

Отметим завершение каникул анонсом LibRaw 0.13-Beta1.

Сегодня на экране:

  • Ускорение распаковки хаффмана за счет более правильной буферизации (а для файлов .CR2 - еще и за счет правильного пред-расчета смещений). В результате LibRaw::unpack() работает раза в полтора быстрее для .CR2 и на 20-30% быстрее для других подобных форматов (NEF, packed DNG).
  • Масса новых плюшек в demosaic packs (похоже, пора их переименовывать в feature packs):
    • Шумопонижение разных видов (подавление banding, подавление импульсного шума, выравнивание зеленых каналов).
    • Новый, более правильный, алгоритм автоподавления хроматических аберраций.
    • Правильная экспокоррекция с возможностью сохранять детали в светах (аналог compressed exposure в RPP).
    • Ускорение медианных фильтров при помощи OpenMP
  • Ну и, естественно, все фиксы из ветки 0.12
Все это благолепие - скоро в digiKam (собственно, кроме экспокоррекции - оно уже там).

Rawspeed: записки на манжетах

Есть такая библиотека RawSpeed, которая натурально написана с душой и склонностью к правильным оптимизациям. Например, файлы .CR2 распаковываются раз в пять быстрее чем это делает LibRaw.

В стремлении эту несуразность поправить, фтыкаю в ее исходники одним глазом, вторым и третьим - в результаты прогона профайлера на LibRaw и RawSpeed на одном и том же файле.

И вижу интересное (в исходниках, не в профайле): Canon 1D Mark III обрабатывается у Коффина в dcraw (и у нас) специфическим способом. Там, как обычно, грубый хак, но работающий. Касается этот хак буквально двух пикселов по ширине на рамке, видимой части изображения - не касается. Ага, сказали мужики и достали лом побольше пошаговый отладчик и grep.

Зная, что меня читают некоторые пользователи RawSpeed, имею сказать, исключительно в информационных целях:

  • RawSpeed извлекает уровень черного только из DNG и NEF, в остальных случаях берется predefined-значение из базы данных по камерам.
  • Уровень черного - это одно число. Даже не два, как в LibRaw/dcraw и не сложная структура, как оно бывает в некоторых камерах вроде PhaseOne (да и DNG - тоже. DNG-шные теги усредняются).
В результате будет два интересных эффекта:

LibRaw 0.12

Тем временем, зарелизили LibRaw 0.12:

  • Поддержка дополнительных алгоритмов, распространяемых на условиях GPL2/GPL3:
    • demosaic-pack-GPL2: алгоритмы интерполяции AFD, LMMSE, VCD, modified AHD, AHD+VCD; дополнительные методы медианной фильтрации изображения; поддержка сенсоров Foveon.
    • demosaic-pack-GPL3: алгоритм AMaZE и подавление хроматических аберраций для AMaZE.
  • Дополнительный алгоритм интерполяции (DCB) и шумопонижения (FBDD) включены в состав основной LibRaw.
  • Поддержка LCMS 2.x
  • Новый механизм ./configure на базе GNU autotools.
  • Исправлены ошибки:
    • Исправления в green_matching для некоторых layouts (как это по нашему?) байеровских матриц.
    • Исправлена ошибка в вызове add_masked_borders_to_bitmap(), которая проявлялась на камерах с нечетной шириной черной рамки.
  • Новые параметры командной строки примера unprocessed_raw: -B - вычитать уровень черного, -M - добавлять маскированную рамку к изображению.

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

Обилие демозаик

Тем временем, вышла LibRaw 0.12 (beta).

Усилиями контрибьюторов (как их писать на нашем, "вкладчики"?) была добавлена большая пачка разнообразных методов демозаики.

К несчастью, лицензионные ограничения не позволяют распространять все это богатство на тех же условиях, что и LibRaw (LGPL/CDDL), поэтому часть этих методов раздается отдельно, под соответствующими лицензиями:

  • Демозаика DCB и шумопонижение FBDD (автор: Jacek Gozdz) добавлена в основную LibRaw, ибо лицензия позволяет.
  • LibRaw-demosaic-pack-GPL2 включает в себя:
    • Алгоритмы, реализованные в Modified DCRAW by Paul Lee: VCD, modified AHD, AHD+VCD и модифицированные медианные фильтры.
    • Алгоритмы из Perfect Raw by Manuel Llorens (удивительно, но не нашел куда нормально дать ссылку): AFD и LMMSE
  • LibRaw-demosaic-pack-GPL3: AMaZE из RawTherapee 3 и подавление хроматических аберраций оттуда же.

Удивительное дело, но на тех снимках, на которых я тестировался (попались детские портреты) разница между алгоритмами - минимальна. Да, она есть, она видна на мелких деталях (а где же еще), но стоит ли овчинка того или нет - мне сложно сказать.

Beware: git(hub)+git+subversion= many epic fails...

Вынужден с огорчением признать, что такая вот схема:

GitHub  локальный git  SVN-репозиторий
оказалась нежизнеспособной, хотя изначально не казалась таковой.

У меня это, правда, осложнялось тем, что в SVN-е запомнена долгая и трудная жизнь, а на GitHub я поэкспортил только /trunk/, только одного проекта, да и то не весь, а только начиная с публичных версий.

LibRaw 0.11.2

По традиции, поспамлю тут немножко.

Вышла LibRaw 0.11.2 в которой:

  • Вычитание уровня черного производится всегда на стадии постпроцессинга (про что я тут уже писал), что сильно упрощает жизнь, особенно если у вас постпроцессинг свой: не надо разные камеры обрабатывать разными способами, черный или всегда сами вычитаете или всегда зовете LibRaw::subtract_black().
    Для пользователей постпроцессинга LibRaw в этом месте ничего вообще не изменилось, API старый, вычитание делается прозрачно для вас.
  • Сильно порефакторена AHD-интерполяция, если используется OpenMP, то на 4-процессорной машине оно теперь раза в полтора быстрее чем раньше (тоже с OpenMP) на полной обработке, т.е. AHD-стадия быстрее разика в 2-2.5
  • Новый I/O-layer, сделанный на iostreams, что для мультипоточных программ на Win32 и Linux сильно быстрее (на этих системах в FILE* I/O явно переборщили с блокировками). На FreeBSD/MacOS разницы никакой нет, что мне говорит об отсутствии там лишних блокировок (а кому-то еще - об убогости тамошней реализации iostreams :).
  • Поддержан мешочек новых камер (импортирована свежая dcraw 9.05):
    • Canon: G12, SX120, 60D,
    • Hasselblad H4D, Nokia X2, Olympus E-5,
    • Nikon: D3100, D7000, P7000,
    • Panasonic: FZ40, FZ100, LX5,
    • Pentax: K-r, K-5, 645D,
    • Samsung GX20, WB2000
  • Ну и по мелочи много поправлено, читайте Changelog.

Ну и на закуску: основная ветка разработки теперь дублируется на GitHub: github.com/LibRaw/LibRaw, отчего участие в наших развлечениях для сторонних желающих сильно облегчилось. Увы, но сил на дублирование всего репозитория не хватило, поэтому релизные боковые ветки - бэкпортятся в master, но вот самих боковых веток на github нету.

LibRaw 0.10 и 0.11

Некоторые пользователи LibRaw тусуются здесь, поэтому я тут и поспамлю немножко.

LibRaw 0.10 Release
Это формальный выпуск, признание того факта, что версия 0.10 - стабильна, каких-то значимых нареканий на нее за лето не было. Значимых отличий от 0.10-Beta3 нет.
LibRaw 0.11 Beta1
А это, наоборот, дивный новый мир с дополнениями и изменениями:
  • Выходное изображение (результат) можно кропать. Кроппинг делается до постпроцессинга, поэтому для маленького выходного размера постпроцессинг будет очень быстрым*.
  • Сильно изменена обработка вычитания уровня черного: теперь для всех камер (за единственным, но никому не интересным исключением, которое я просто протестировать не могу**) на этапе распаковки RAW-данных вычитание черного не производится. Дальше можно вычитать одним из трех способов: постпроцессинг (dcraw_process()) сделает все сам, если вы делаете демозаику и т.п. сами - вам подойдет новый вызов LibRaw::subtract_black(), ну и полностью самостоятельно все можно делать, данные черной рамки доступны и все такое.
  • Ну и всякие изменения по мелочи, скажем аллоцированное dcraw_make_mem_image()(_mem_thumb()) теперь надо освобождать через dcraw_clear_mem(), обсуждению этого парадокса посвящен предыдущий пост.

Беда, коль сапоги начнет печи...

Вот, казалось бы, хорошая идея - давить пиковые выбросы прямо в RAW-данных. Hot pixels так можно задавить. Вот мне для LibRaw такой патч и прислали, причем, как я понимаю, он уже вовсю работает в одном опенсорсном RAW-процессоре.

На картике слева (кликабельна, по клику увидите как оно на экране при 150%) показан результат применения этого веселого подхода к снимку resolution target. Сверху - результат фильтрации, снизу - без фильтрации. Холст, масло, Canon 500D, снимок взят с imaging-resource.

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

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

Такое впечатление, что тестировать результаты собственного программирования - просто не принято в последние годы. Я эту красивую картинку получил в первом же (!) тесте (то, что туда попалась resolution target - случайность, но артефакты полезут на любых контрастных границах).

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

P.S. Второй содержательный патч из того же источника - не тестировал пока, хотя он мне идеологически тоже не нравится. Он давит maze artefacts, но должен и малоконтрастные детали тоже сгрызать.

Надевелопили? Придется раздевелопить обратно!

Получил тут от одного индуса (не морального, а настоящего) 40-килобайтный патч к LibRaw, заменяющий мой руками-с-любовью написанный 4-килобайтный Makefile на всякий libtool, Makefile.am и прочие страшные слова (40 килобайт там по той причине, что еще раз, для надежности, включен текст LGPL).

Прикол в том, что никакого реального value не привнесено. Пищалки, перделки, configure, libtool, сверкает и переливается, но профита никакого (результаты работы тестовой фазы configure никак не используются и что будет, если, к примеру, strings.h не найден - неизвестно). А, нет, можно сделать ./configure --prefix=/tmp, но это и все.

Зато многое потерялось, вроде сборки с OpenMP. Еще добавилось много лишних сущностей, всякие враппер-скрипты от того же libtool, лишняя библиотека, библиотеки стали shared (а этого для текущей LibRaw категорически нельзя делать) и т.п.

Зато ВВП увеличен, автор потратил время на производство этого гуана, а я - на его обнюхивание.

Объясняю вышенаписанное автору патча, а он обижается. Вспоминается история с Apache2, когда туда IBM (? не помню точно) принес три мешка Software Engineering, отчего проект не мог выйти из беты лет пять.....

LibRaw 0.9

Я знаю, этот блог читают разработчики нескольких софтин, использующих LibRaw, поэтому я и сюда немножко поспамлю.

Вышла LibRaw 0.9, из нового, крупными мазками:

  • Отдельных полной/-Lite/-коммерческой версий больше нет, есть одна LibRaw. Поддерживать три немножко разных библиотеки очень мучительно.
  • Никакого GPL. LGPL/CDDL/собственная лицензия, на выбор пользователя (точнее, разработчика программы, использующей LibRaw).
  • Фовеона тоже больше нет. Унаследованный из dcraw код его поддержки был GPLed и при этом кисть хороший цвет не давал. Пусть пользователи Сигм как-нибудь сами...
  • Розовые облака правятся автомагически, по-умолчанию эта функциональность включена. Можно выключить, смотрите документацию (это место рулится через adjust_maximum_thr).
  • Много существенных исправлений в обработке RAW с камер Fuji, теперь если вы делаете постпроцессинг сами, то не нужны многие дополнительные пассы (обязательные ранее).
Прошу любить и жаловаться если вдруг что.

О фовеонах

Несмотря на то, что существует некое подобие консенсуса, дескать у сенсоров Foveon все с цветами относительно неплохо, а если приложить специальный фильтр, то вообще все станет шоколадно, действительность оказалась гораздо хуже.

Второй день рассматриваю на мониторе разные колорчекеры, снятые разными сигмами и весь в печали. Независимо от используемого конвертора, никакого счастья нету.

На картинке - два результата конверсии Адобом (другие конверторы - дают другие результаты, но интегрально не лучше), две Сигмы (DP2 и SD14) и один 5DmkII. Попробуйте угадать где что.

Наиболее показателен, конечно, темно-красный патч C3, который правильный у Кэнона и совершенно разным способом неправильный у двух сигм. Но вообще, со всеми красно-оранжевыми цветами беда, да и с E3 тоже не подарок, да и вообще... SD9, кстати, еще хуже, там C2 и C3 вообще почти сливаются.

Нет, я понимаю, что счастье должно быть достижимо со специальным фильтром, но это теория такая, а на практике таких фильтров не существует.

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

LibRaw Lite

почти копия анонса с сайта

По многочисленным заявкам нелюбителей GPL выпущена LibRaw-Lite

Как следует из названия, это облегченная версия LibRaw, основные отличия которой от полной версии таковы:

  • Лицензия LGPL, что позволяет использовать (немодифицированную) библиотеку в не-опенсорсных приложениях.
  • (увы) нет поддержки Foveon в силу лицензионных ограничений на этот кусок dcraw (откуда растут ноги у LibRaw). Мы работаем над этим и возможно предложим какую-то замену.
  • Нет целого ряда улучшений (сделанных нами относительно функциональности dcraw):
    • черная рамка (маскированные пикселы) не извлекается, эти пикселы приложению не доступны;
    • вычитание точки черного и прочая пред-интерполяционная обработка RAW-данных не отключается;
    • способ, которым получены цветовые данные (матрицы RGB-XYZ и т.п.) не запоминается;
    • нет поддержки OpenMP.

Другими словами, все то хорошее что мы сделали в расчете на разработчиков RAW-конверторов, анализаторов RAW и прочие программы, которым нужен доступ к исходным RAW-данным - в Lite-версии отсутствует.

Pages

Subscribe to LibRaw