2012

Анонс: калибровка экспонометра цифровой камеры по RAW-данным

Хочу напомнить, что сайт RawDigger - это не только ценный мех сайт программы, там будут публиковаться тексты про применение RawDigger в обычной фотографической практике, а не только для фотодро.. глубокого технического анализа камер.

Сегодня опубликован очередной опус:

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

Прошу любить и обсуждать. Лучше там, но можно и тут.

RawDigger 0.9.8

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

Встречайте: RawDigger 0.9.8. Прошу любить и жаловаться.

Изменения космические косметические:

  • Гистограмма всего файла вызывается/прячется по Ctrl-H
  • Вызов File-Open, File-Prefs через шорткаты - работает из любого окна программы
  • Окончательно (хочется надеяться) полечено падение при изменении настроек без открытого файла
P.S. Впрочем, все пользователи программы, кто не хакнул обращение к интернету при старте, об этом апдейте узнают автоматически.

Про Drupal7: ненависти (вместо любви) псто !

Только я собрался написать, что впечатления про Drupal7 более-менее положительные, все такое современное, с оверлеями и прочими понтами... как вдруг, внезапно, вылезла проблема:

Если пойти на сайт под D7 по битому URL somesite.domain/node/some-garbage

То вылезает PDO Exception, дескать к числовому полю ходят с символьным ID. Ну, как минимум под PostgreSQL вылезает, возможно MySQL к этому более толерантен (и мусор превращает, скажем, в 0, что не менее прекрасно).

В Drupal6 это место сделано куда разумнее, возвращается обычная страница '404' (нема такой страницы).

Понятно, можно подпереть на фронтенде, фильтровать после /node/ (/comment/, /user/) весь нечисловой мусор, но слишком много исключений (/node/add, небось и всякие /node/что-то-еще тоже бывают).

Значит надо фильтровать уже внутри, там грузится нечто по ID (или списку), ID бывает только числовой.

Гуглую и нахожу прекрасное: PDOException:Invalid text representation when attempting to load an entity with a string ID.

Ровно эта ошибка, ну думаю внесли недавно, сейчас возьму оттуда патч, а в следующем релизе поправят.

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

Я догадываюсь, что проблема в процедуре: активная ветка жалоб приписана к Drupal8, который какбэ девелопится. А репорты про 7.x (один нашел, тоже больше года ему) - помечен как duplicate от D8, вычеркнут и в боевой версии D7 его какбэ и нету. Запихали проблему под ковер.

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

А в остальном - семерка пока нравится, если с нуля. Апгрейдить в нее с осени ничего не пробовал, даже в тестах. Но теперь я ее опасаюсь.

RawDigger 0.9.7

RawDigger

Пока у пользователей RawDigger не выработалась привычка читать анонсы на сайте проекта, буду частично дублировать их тут.

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

То что не реализовано пока - сохранено в TODO, надеюсь что руки постепенно дойдут до всего.

Существенные изменения

  • Необходимость сети для запуска
    • Проверка обновлений учитывает системные настройки интернет-соединения. Если вы работаете через proxy, поставьте правильные настройки в Control Panel - Internet Options - Connections - LAN Settings.
    • Можно однократно отключить проверку обновлений, запустив noCheckUpdates.reg (находится в каталоге программы, ProgramFiles [(x86)]/LibRaw/RawDigger при установке по-умолчанию ), эта настройка сбрасывается при запуске.
    В результате, сидящие за proxy или вовсе без интернета имеют возможность оценить наше изделие.

    Фошшизм с интернетом будет продолжаться до релиза. Нам действительно важно, чтобы вы вовремя обновлялись.

  • Имя файла для открытия может быть передано в командной строке. Программа воспринимает первый переданный аргумент как имя файла и пытается его открыть. Соответственно, можно драгать-дропать файл на иконку приложения.
  • Поддержан Drag-and-Drop файлов в окно приложения. Если передается группа файлов, открыт будет только один файл (первый, но сортирует операционная система).
  • Новые настройки:
    • Новая настройка "предупреждать о несохраненных самплах в списке самплов".
    • Новая настройка "сохранять размер/позицию главного окна" (при запуске позиция будет восстановлена только если настройка стоит).
    • Новая настройка "запоминать рабочий каталог" облагорожен порядок обхода контролов по Tab
  • Показ данных всех каналов RAW в greyscale (режим взаимоисключающий с 2x2 pixels). В этом режиме может быть показан и не RGB(G) RAW-файл.

10G дома: Myricom 10G

Помимо Infiniband-карточек, я, как и собирался, запасся картами Myrinet 10G. Портов меньше, дороже (получилось $80 за карту), но тоже интересно.

После пары дней мучений (о которых ниже) удалось получить такое вот (tcp, 1 поток):

------------------------------------------------------------
Client connecting to 10.3.1.2, TCP port 5001
TCP window size:  256 KByte
------------------------------------------------------------
[  3] local 10.3.1.1 port 1383 connected with 10.3.1.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  7.77 GBytes  6.68 Gbits/sec
Это Iperf, между Win7 и Linux. Медленнее чем IB в connected mode, быстрее чем в обычном режиме. Что неудивительно, ибо в connected mode размер пакета 64k, в обычной - 2k, а тут чем больше - тем лучше.

Плюсы (в сравнении с Mellanox):

  • Есть драйвера для мака (не пробовал). Ну и вообще, все кроме Windows поддерживают сходу, для виндов - просто ставятся драйвера.
  • Аппаратные контрольные суммы для IP, в случае IPoIB все считается, как я подозреваю, софтом. В результате 26Gbit (два двунаправленных потока по IB) грузят i7-920 ровно наполовину. Мне, впрочем, нужно меньше, оттого я не сильно парюсь.

Минусы:

  • Никаких наворотов, вроде Winsock Direct, SRP, SDP, RDMA. Просто Ethernet 10G. Это может быть и плюс, если хочется просто работать (Subnet Manager не нужен, ARP как у людей и т.п.), но IB-шные навороты в локальном масштабе вполне могут быть и полезны.
  • Один порт. Т.е. цена за порт выше раза в 4 (хотя и остается низкой).
  • Карты сильно греются, пришлось искать слот с обдувом.
В бой поставлю, пожалуй, IB, а пару этих оставлю в заначке, может и пригодятся.

10G дома: IB performance

На всплывавший ранее вопрос "а потянет ли PCIe 1.0 8x два порта Infiniband" ответить не могу, ибо кабель на руках пока один. Один порт тянет:

                    RDMA_Read Bidirectional BW Test
Connection type : RC
  local address:  LID 0x200, QPN 0x8042600, PSN 0xd0710000, RKey 0x3100f6 VAddr 0x00000000f60040
  remote address: LID 0x100, QPN 0x8041c00, PSN 0x982e0000, RKey 0x3100b6 VAddr 0x00000001060040
Mtu : 2048
------------------------------------------------------------------
 #bytes #iterations    BW peak[MB/sec]    BW average[MB/sec]  
      2        1000               0.79                  0.75
      4        1000               1.81                  1.51
      8        1000               3.38                  3.00
     16        1000               8.44                  6.02
     32        1000              12.67                 12.02
     64        1000              25.33                 23.41
    128        1000              67.55                 44.28
    256        1000             108.09                 81.34
    512        1000             170.66                164.09
   1024        1000             432.35                323.87
   2048        1000             720.58                660.57
   4096        1000            1127.86               1107.30
   8192        1000            1572.17               1485.81
  16384        1000            1729.38               1712.38
  32768        1000            1804.58               1797.25
  65536        1000            1844.68               1836.56
 131072        1000            1857.06               1856.84
 262144        1000            1867.50               1866.47
 524288        1000            1872.77               1871.86
1048576        1000            1874.88               1874.69
2097152        1000            1876.21               1876.13
4194304        1000            1876.87               1876.80
8388608        1000            1877.20               1877.18
------------------------------------------------------------------

Это двунаправленный BW, один поток туда, другой - обратно, одновременно. Я щетаю, 7.5Gbit/s payload в одну сторону (из теоретических 8.0) - это вполне нормально.

Заодно понятна польза Jumbo Frames на Ether, особливо на 10G.

Под катом Latency:

10G дома: первые успехи

Как я и предполагал в предыдущем посте на тему, дело было в бобине кривом кабеле (а чего я хотел за $16 без доставки...).

Не сдержался, купил 3-метровый D-Link в московской рознице, руки то чешутся.

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

ttcp PID=0x1e20 TID=0xd60
ttcp -t: buflen=65000, nbuf=10000, align=16384/0, port=5001  tcp  -> 10.1.1.2
ttcp -t: 650000000 bytes in 718.00 real MilliSeconds = 863.35 MByte/sec +++
ttcp -t: 10000 I/O calls, msec/call = 0.07, calls/sec = 13927.58

Это Connected Mode, MTU 65520, размер пакета - 65000 для ровного счета. Windows - Windows.

А помянутая выше тонкость простая: если нет свитча, то Subnet Manager надо запускать до того, как воткнута карта. Без этого оно о скорости договаривается не всякий раз правильно, бывают и те 1x, которые меня мучали в прошлый раз.

И, сюрприз, IPoIB прекрасно работает при 4x, но не работает на 1x. Хотя Infiniband-пакеты успешно ходят на обеих скоростях.

Плотно займусь рассмотрением скоростей (самба, iscsi, SRP) - не раньше выходных, пока RawDigger не дает отвлечься. C FreeBSD, вероятно, тоже будут приключения.

RawDigger: все что вы хотели узнать про RAW, но боялись спросить

RawDigger В публичное бета-тестирование выпущена программа RawDigger, предназначенная для просмотра, изучения и анализа RAW-файлов. Она позволяет:
  • Смотреть глазами на сам файл в RAW-виде (и в RGB тоже).
  • Смотреть значения RAW-данных для отдельных пикселов в RAW-файле.
  • Считать поканальную статистику RAW-данных по файлу или по произвольному прямоугольному участку.
  • Строить гистограммы RAW-данных по файлу или по его участку.
  • Сохранять статистику и гистограммы в удобном виде.
  • Сохранять тоновые кривые RAW (для тех файлов, где они есть).
Поддержаны важные особенности RAW-файлов:
  • Вычитание/невычитание черного (c поканальной регулировкой уровня черного при желании)
  • Включение/выключение тоновой кривой.
  • Показ/непоказ черной рамки.
Кроме того, есть довольно длинный список TODO (который мы надеемся расширить с помощью пользователей), функциональность будет расширяться.

Про черно-белое

Просили картинок?. Их есть у меня.

Обработка в RPP в черно-белом режиме (Film Curve + немножко экспозиция/контраст), доточено в фотошопе (HIRALOAM, ресайз, финальный sharpen). Никаких channel mixer!

Обычное ч-б, без странностей. Должны, естественно, ч-б фильтры нормально работать, но у меня их нет :)

RAW-Файл: _MG_0295.CR2 (25M), полежит дней 10, как надоест - того.

читающим в ЖЖ: извините за помятую ленту

Об артефактах демозаики

Один из соседних домов - это старая советская панельная 14-этажка, отделанная мелкой (кафельной?) плиткой, буквально квадратики 3x3 сантиметра или около того. Серая плитка на сером цементе. Ну, многие видели.

Снимаю с рук, 1/800s, камера без антиалиасинговых фильров (и цветового алиасинга на самом деле нет, про камеру ниже), засовываю в Adobe Camera Raw 6.6 и получаю вот такую вот пятнистую прелесть (100% crop):

Черные точки там в натуре есть, я в бинокль посмотрел. Не мыли его много лет.

Оттенок поправлен настолько, насколько конвертор это может: оба движка ББ выкручены максимально влево, дальше никак.

А на самом деле снимок выглядит вот так:

Pages