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(), обсуждению этого парадокса посвящен предыдущий пост.

0.11 появилась по той банальной причине, что я стал использовать 0.10 для одного варезу и решил, что c текущим вычитанием-невычитанием черного неудобно и стоит все генерализовать.

Сноски:

* - можно (хотя и неудобно) использовать кроппинг для распараллеливания постпроцессинга на многоядерных машинах, но делать это нужно аккуратно: отключив все автоматы (баланса белого, растягивания гистограммы), ну и с перекрытием пикселов в 4-10, чтобы на артефакты интерполятора не попасть.

** - эта мало кому нужная камера - Canon A600 и подобные (с CHDK hack), у меня даже сампла для них нет. Проблема в том, что там на этапе распаковки даже баланс белого делается, поэтому отложить вычитание black level на потом никак не можно.