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

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

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

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

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

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

О цвете

Вынесу, пожалуй, из каментов, это существенное соображение.

Нам пишут, дескать при использовании dcraw -o 0 в тесте алгоритмов интерполяции, получающаяся "интерференция" не столь ужасна, как была с цветом по-умолчанию (sRGB output).

Отвечаем: ну да, в тестовом DNG такая цветовая матрица (это от лени случайно совпало специально сделано), что при попытке привести ее к sRGB, значения в матрице поворота будут большие (по модулю). В результате, наступает клиппинг, который видимость "интерференционных эффектов" усиливает. Если к тем же DNG-данным приписать sRGB ColorMatrix1 (или выключить color processing, что приведет к тем же результатам), то такого усиления видимости - да, не будет.

Да, в ICC-терминах движок LibRaw/dcraw работает в Absolute Colormetric: точка белого никак не правится, все выходящее за gamut - обрезается.

Вместе с тем, воспроизводимость получаемых в LibRaw/dcraw эффектов в коммерческих приложениях (ACR, HDR Studio) наводит нас на мысль, что тамошний цветовой движок в точности такой же - Absolute Colormetric и с обрезкой gamut. Соответственно, это надо учитывать и тестировать в реальной работе (смотреть что ушло в клиппинг и все такое...).

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 для этого и так подходила, но зачем фотографу маскированная рамка и невычтенный черный?

Тихий, маленький....

По наводке с хабрахабра, погулил HP Proliant Microserver и мне понравилось:

  • Размер 27x25x21 см.
  • Прохладный, тихий
  • 4 SATA-диска 3.5", не hot-swap
  • Два PCIe-слота, 1x и 16x (и третий под IPMI card)
  • AMD Atom NEO, 2 core
  • Два слота DDR3, ECC до 8 гигов
  • гигабит, куча USB
  • $400 в Москве (с гигабайтом памяти и диском на 160), $300-330 в штатах.

Судя по результатам гугления, ставится туда все что шевелится: и винды, и Linux и FreeBSD и OpenSolaris, дисковый контроллер и сеть находятся.

Для дома и семьи - интересная замена 4-дисковым NAS-ам: дешевле "крутых", не дороже "дешевых", но расширяемое: можно, скажем, 4-портовый ethernet воткнуть (который, конечно, будет стоить еще столько же) и ОС можно выбрать. Но минус хот-свап, нафиг дома не нужный.

Жалко что мне не надо :)

Цирк-с-конями.рф

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

Комедия в бесконечном числе действий:

  1. Регламент регистрации в .РФ предусматривает отказ регистрации в случае, если нарушается нравственность и мораль. Список нарушений морали и нравственности установлен КЦ и широко обсуждался (гуглить по словам "ебля с перископом"), в том числе и в этом блоге.
  2. Прошел уже месяц с приключениями, блокировками и прочим боданием Руцентра и КЦ, аморальный список действует (в числе прочего, домен старые-бляди.рф довольно долго торчал в whois с личным E-mail Лесникова в контактных данных, недавно поменяли).
  3. ВНЕЗАПНО Руцентр вводит свой стоп-лист
  4. И начинает снимать с регистрации уже зарегистрированные домены.
  5. Которые ТУТ ЖЕ перехватывают другие регистраторы, а вы как думали.
Понятно, что у многих/большинства Руцентровских доменов Администратор - сам Руцентр, он может направить (сам себе?) письменное заявление о снятии с регистрации и снять. А владелец домена - при этом может пососать упса с витамином "С".

Попкорн кончается, надо бежать в магазин за новой дозой....

О плавающей точке и точности вычислений...

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

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

Про Drupal 7

По случаю выходных, помацал Drupal 7 (в связке с PostgreSQL 9, гулять так гулять). Внутрь особо не заглядывал, просто покрутил в руках на тестовом сервере.

Имею сказать:

  • Штука - работает. Ну то есть я пробовал свежую инсталляцию, а не апгрейд старой, с апгрейдом лично у меня будут проблемы.
  • Модулей, прямо скажем, не хватает. Я смотрел список используемых у меня на разных сайтах, дойдя до буквы I обнаружил уже две проблемы и остановился. Проблемы такие:
    • Нету inline tags, а я этот модуль использую для публикации через BlogAPI (собственно, BlogAPI тоже нет, но вроде есть какая-то замена). Как-то можно обойтись, что-то похакать, может быть в замене BlogAPI категории работают.
    • Нету GeSHi Filter (syntax highlighter для кусочков кода) и это уже совсем большая потеря. Замены есть и не одна, но все с другим синтаксисом, вместо <code> что-то еще, а это готовые тексты-каменты править.
В-общем, пусть поживет еще несколько месяцев без меня....

Ну, за линейность!

Вот, кстати, интересные картинки на тему (якобы) линейности сенсора камеры

www.maxmax.com/nikon_d700_study.htm. Там еще есть, для D200, D300 и 40D

То есть, для меня вопрос, что именно они меряли (не значения ли в JPEG, судя по максимуму, хоть и написано "raw linearity graphs"), но ступенька в красном в любом разе весьма удивительна.

Update: судя по длинам выдержек, это привет от внутрикамерных шумодавов разных систем.

Вжик, сказала пила.....

Как и обещал ранее, я тут засунул лом в японскую бензопилу сделал мишеньку для выведения алгоритмов интерполяции на чистую воду.

В том смысле, что преобразовал показанную слева картинку в DNG и скормил двенадцати демозаикам в LibRaw. Ну и тройке настоящих конверторов, попавших под горячую руку.

Ну и написал на эту тему статью, как водится, читайте: Байеровский муар.

Комментировать и обсуждать лучше там, но для тех кому лень, я комментарии тут тоже не закрываю.

Lens Shift для micro-4/3

Fotodiox сделал шифт адаптеры для micro-4/3. Под все что шевелится на 135-м формате.

каталог.

Без тильта, хоть раздел в каталоге и называется Tilt-Shift. Но сдвигается на 10 мм в каждую сторону и крутится. Любителям панорам будет в самый раз.

Я у них всегда покупал через eBay, доходило все в лучшем виде, но сейчас в eBay-store у них этих адаптеров отчего-то нет, а на сайте - есть. На eBay есть с виду такие же, но от шведского и китайского продавцов и по $300. За 300 проще панорамную голову купить....

Ждем того же самого с тильтом, хотя на micro-4/3 оно будет странновато смотреться.

Книга - лучший подарок?

Граждане,

А Pocketbook IQ 701 кто-нибудь мацал?

Вроде формально все на месте: 7", Андроид 2.0, LCD и всего за ~$250. Смущают две вещи:

  1. на яндексе скорее ругают и отзывов вообще мало. Про 5 часов работы с одной зарядки уже читал, у самого производителя про это вообще ничего на сайте...
  2. Полкило веса - это как-то для 7" дохрена.
Я не то, чтобы собирался это купить себе, но ведь новый год на носу.... Поэтому если кто держал в руках (или себе купил) - черкните пару строчек...

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

Полстраницы о высоких ISO у ЦФК

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

Несколько тезисов

Сенсор цифровой камеры - он цифровой, считает электроны
Прибывающие фотоны превращаются в заряд с какой-то квантовой эффективностью, вот прямо в штуки электронов. Квантовая эффективность современных сенсоров - порядка 0.5, два фотона в один электрон (зависит от длины волны, для самых синих все много хуже), это уже после байеровских светофильтров.
Емкость одного пикселя (сенселя) - конечна
Один пиксель может накопить не очень много электронов, десятки тысяч. Емкость пикселя определяется его площадью в первую очередь. У Роджера Кларка есть красивая табличка с парой десятков камер Canon/Nikon, у него же описана методика самостоятельного определения характеристик камеры.
После считывания с сенсора, сигнал может быть усилен
Усиление используется, чтобы привести слабый сигнал к удобному для АЦП диапазону.
Заметим в скобках, что цифровые камеры получаются "дважды цифровыми": сначала дискретные отсчеты на сенсоре, потом оцифровка их на АЦП
Динамический диапазон определяется отношением сигнала к шуму
Шумы при этом - это и шум квантования на сенсоре (т.к. число электронов всегда целое) и шум усилителя и тепловые шумы (электроны, возникшие сами по себе, без упавших фотонов) и шум квантования на АЦП.
Теперь перейдем к простому примеру.

Update: дописал два абзаца про синий канал, высокие ISO и лампы накаливания. Если не хотите огорчаться, лучше не читайте.

Pages

Subscribe to blog.lexa.ru: все статьи