Skip to Content

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

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

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

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

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

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

Ситуация с уровнем белого аналогичная: для всех форматов кроме NEF и DNG уровень белого (насыщения) берется из базы. Тогда как у одной и той же камеры на разных ISO он может скакать в пределах трети стопа, если не больше.

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

Проблема с белым решается легко (можно просто по извлеченным данным его посчитать и если вдруг что - поправить), уровень черного чинится только внутри RawSpeed.

Клаусу напишу, но пока не починили - пользоваться RawSpeed лучше с учетом вышенаписанного.

Написанное про уровень черного касается только тех камер, где черный не вычитается на этапе записи RAW. Из распространенных - это Кэноны в первую очередь. Уровень белого касается практически всех.

Comments

Ну и как - есть какой-нибудь прогресс в этом вопросе у RawSp

Ну и как - есть какой-нибудь прогресс в этом вопросе у RawSpeed? А то ведь его теперь в darktable впилили...

Я на прошлой неделе делал SVN diff c той версией, которая оп

Я на прошлой неделе делал SVN diff c той версией, которая описана выше в посте.
Увидел разницу в обработчике .PEF (Pentax) - там есть специфический случай с фирмварью для K-5 (или K-r, я их путаю) и по сути - все.

Т.е. если прогресс и есть, я его не углядел. С Клаусом мы попереписывались тогда, а потом переписка заглохла как-то.

Печально...

Печально...

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <s> <i> <b> <blockquote>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Images can be added to this post.

More information about formatting options



.