Обо мне
    Резюме
    Портфолио
    Контакты
    Астро
    Схемотехника
    Мультикоптеры
    Автономный дом
    CNC фрезер
Язык:

Проблемы съёмки RAW-видео на Canon EOS M: удаление фокусировочных точек

10/12/2013 14:49:00
RAW-видео, Pink Dot Remover

Начну с того, что недавно я купил Canon EOS M - это беззеркалка от Canon. Кишки у фотика от Canon EOS 650D. 18 Мпикс матрица, возможность съёмки видео в 1920x1080@25p в mp4 (avchd, h264 кодек). Современно, ничего принципиально нового, выдающегося. Вес со штатным объективом 18-55 (f3.5 - 6.5), картой памяти и аккумулятором - 510г.

К этому фотику, как почти ко всей линейке Canon EOS, есть дополнительная прошивка, значительно расширяющая базовую. Звать её Magic Latner, легко гуглится по названию.

В числе прочих плюсов, которые даёт прошивка, есть возможность записи RAW-видео. В этом режиме фотик снимает последовательность 14бит кадров в dng-раве (без дебаеризации). Складывает их в один большой файл с расширением RAW.

К фотику я докупил быструю... реально быструю и дорогую SD карточку. Железо фотика, а именно контроллер SD-карты позволяет прокачивать лишь около 38 МБайт/с, хоть карта поддерживает вдвое большую скорость (до 95 МБайт/с). Плюс существуют ограничения разрешения съёмки именно на этом фотике. В итоге максимальный полученный кадр 1728 х 584. Если его увеличить по вертикали в 1.66 раза, то получится 16:9 почти что FullHD (1920x1080). Для моей задачи (съёмка видео с радиоуправляемого "вертолёта") не так важна частота кадров именно 25, так что я уменьшил её до 22 кадров в секунду, а потом при обработке чуток ускоряю видео до желаемых 25 кадров в секунду.

При 22 fps и разрешении 1728 х 584 я получаю поток 14бит рава с допустимой для интерфейса фотика скоростью 35.9 МБайт/с. Видео пишется стабильно, без залипаний, пропусков и сбоев. Можно чуть опустить разрешение, подняв fps до 25.

Есть программка на компе, которая из этого большого RAWa достаёт кучу DNG файлов, складывает их в папочку, давая им имена файлов в соответствии с номером кадра в видеоряде.

К сожалению, некоторые пиксели используются кэноном для гибридной фокусировки. В её суть я не вникал, но негативный эффект ощущаю. Он заключается в чёрных / белых точках на каждом кадре, расположенных определённым, слава богам, одинаковым на каждом кадре, образом.

Чтобы найти маску, я отснял видеоряд, который потом перевёл в DNG, потом в fit'ы и сложил FitStacker'ом без sigma clipping (термины из астрофото). Это усреднило и размазало всё реальное изображение, выделив именно искомых "врагов" - пиксели гибридной фокусировки.

Дальше я написал мелкую PHP-программу, которая рисует "мастердарк". Там чёрным то, что трогать не надо, чистА белым то, что нужно интерполировать из соседей. Тынц на прогу.

Запустил её на своей виртуалке, получил png. Его в cosmeticCorrection. И вот из исходного кадра получил такой кадр. Я довооолен :).

Похожее решение уже существует в виде java-программы, но мне не понравилось как она работает.

 

WorkFlow (последовательность действий) достаточно мудрёная, но не сложнее не так давно любимого мною астрофото :)

  • отснял видео;
  • флешку достал, скопировал себе огромный файл *raw;
  • запустил raw2cdng.1.3.0.exe, в её окошко драг-дропнул этот *raw, получил папку с кучей dng-файлов;
  • в PixInsight перевёл их в fitы через Script / Batch Processing / Batch FormatConversion;
  • применил удаление "битья" по маске - через Script / Utilities / Cosmetic Corrections;
  • обычная для астрфото калибровка биасом (выдержки мелкие, так что дарк не нужен) и флетом;
  • перевёл фиты в tiff через тот же скрипт парой шагов раньше;
  • пакетно подровнял тифы в фотошопе. Кривая, ББ, виньентирование, шумодав, .... Сохранил в других хороших тифах;
  • набор тифов в роли видеоряда понимает Adobe AfterEffect.

В AE уже можно сохранить видео в Loseless avi, который можно монтировать в Premiere. Конечно, после окончательной цветокоррекции и, главное, зачем вся эта возня с равом, после окончательных кривых, использующих 14бит ДД :).


Прошло чуток времени. Я отснял первый полноценный десятиминутный ролик в RAW-видео и ... упарился обрабатывать как сам написал выше. :)
Плюс я пока очень слабо разбираюсь в постобработке и получается ... не очень хорошо. Случайно узнал, что dcraw поддерживает карту битых пикселей. Модифицировал программку, чтобы она составила файлик со списком координат "битья" в виде текстового файла и натравил dcraw на все dng файлы так

do.cmd содержит:
for %%f in (*.dng) do dcraw.exe -P bad -w -q 3 -6 -T -H 2 %%f

bad, сгенерённый пхп-прогой, содержит:
6 208 0
14 208 0
22 208 0
30 208 0
....
и т.п.

Запускаю do.cmd, в том же каталоге лежат raw-файлы и dcraw с библиотеками. По уму надо, конечно, всё настроить иначе, но для теста подойдёт.

Получаю там же кучу уже логарифмизированных тифов. Их переношу в другой каталог для обработки и перевода в видеоряд.

Подкупает простотой. Смущает сужением ДД из-за гамма-коррекции в dcraw. Конечно, её можно отключить и править кривыми при постобработке... Думается мне, что это куда более верный workflow. Его и попробую на следующем ролике.


Архив

Телефон: +7 (928) 425-32-10
e-mail: