LibRaw 0.13-Beta1
lexa - 10/Янв/2011 22:07
Отметим завершение каникул анонсом LibRaw 0.13-Beta1.
Сегодня на экране:
- Ускорение распаковки хаффмана за счет более правильной буферизации (а для файлов .CR2 - еще и за счет правильного пред-расчета смещений). В результате LibRaw::unpack() работает раза в полтора быстрее для .CR2 и на 20-30% быстрее для других подобных форматов (NEF, packed DNG).
- Масса новых плюшек в demosaic packs (похоже, пора их переименовывать в feature packs):
- Шумопонижение разных видов (подавление banding, подавление импульсного шума, выравнивание зеленых каналов).
- Новый, более правильный, алгоритм автоподавления хроматических аберраций.
- Правильная экспокоррекция с возможностью сохранять детали в светах (аналог compressed exposure в RPP).
- Ускорение медианных фильтров при помощи OpenMP
- Ну и, естественно, все фиксы из ветки 0.12
Comments
процесс
Не могли бы Вы рассказать о рабочем процессе с применением LibRaw, ну или о Вашем рабочем процессе.
С уважением Юрра.
LibRaw - это в первую очередь
LibRaw - это в первую очередь тул для разработчиков, а во вторую - для копателей в потрохах у RAW.
Наверное, можно и к процессу приспособить, если речь идет о батч-обработке многих однотипных кадров (типа мультфильма).
А рабочий процесс у меня лично - на RPP.
Спасибо, с компиляторами я
Спасибо, с компиляторами я дружу, а вот приспосабливать и возиться с LibRaw нужны какие либо основания, я работаю с CameraRaw и мне интересно, есть смысл погружаться в эти потроха или нет. Спасибо за внимание :-)
LibRaw - это не
LibRaw - это не RAW-конвертор, это способ снять с автора конвертора головняк по разбору форматов.
То что некоторые используют и постпроцессинг тамошний (который там скорее для галочки) - это их проблема....
И вас с наступающим. Я тут
И вас с наступающим.
Я тут случайно заглянул унутро void CLASS ahd_interpolate(). Не знаю как шедулятся треды в приложении, но вот в этом куске не могут ли случиться трудно отлавливаемые глюки (dcraw_cbrt объявлена как static) при вызовах из разных тредов:
if(dcraw_cbrt[0]<-0.1){
for (i=0; i < 0x10000; i++) {
r = i / 65535.0;
dcraw_cbrt[i] = 64.0*(r > 0.008856 ? pow((double)r,1/3.0) : 7.787*r + 16/116.0);
}
}
Ну да, в теории можно попасть
Ну да, в теории можно попасть на ситуацию, когда один поток начал эту таблицу инициализировать, а второй по ней уже фигачит.
Переделаю инициализацию в обратную сторону, спасибо.