Оцифровка 8мм кинопленок

Несмотря на то, что снимать 8-ми миллиметровыми (8 мм и Супер 8 мм) кинокамерами прекратили еще в 80-90 годы прошлого века, интерес к оцифровке накопленных за несколько десятилетий домашних киноархивов до сих пор не ослаб. Пусть эти кинопленки и не обладают высоким качеством изображения, зато содержат очень важную для многих, и, главное — неповторимую информацию о годах собственной юности, о людях старшего поколения, традициях и особенностях ушедших времен...

С появлением более современных форматов съемки и хранения видео — сперва VHS видеокамер и магнитофонов, затем цифровых Video CD, DVD-Video и т.д., обладатели домашних киноархивов начали переводить их в более удобный для просмотра и более надежный с точки зрения хранения вид. Собственно применялись 2 очевидных подхода:

  • поручить такую работу специалистам (есть немало фирм, выполняющих такие работы; по крайней мере в крупных городах с этим особых проблем не возникает, неприятные моменты лишь в стоимости таких работ и в не всегда высоком качестве: фирмы-то бывают разные…
  • выполнить пересъемку самостоятельно с использованием подручных средств.

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

  1. Обзор способов оцифровки 8мм кинопленок, реализуемых в домашних условиях
  2. Практическая реализация способов оцифровки 8мм кинопленок
  3. Последующая обработка захваченного видео. Утилита AviSynth
  4. Заключение

1. Обзор способов оцифровки 8мм кинопленок, реализуемых в домашних условиях

1.1. Исторически первым и самым очевидным способом является способ прямой пересъемки видеокамерой изображения с экрана, на который оно проецируется обычным кинопроектором. У этого способа множество разновидностей, например:

  • съемка в полной темноте с привычного для зрителей расстояния в 2-3 метра;
  • проекция изображения с малого расстояния на небольшой экранчик из обычного листа бумаги;
  • проекция может идти со стандартной скоростью или в замедленном темпе с дальнейшей корректировкой скорости в видео редакторах;
  • наконец, можно либо снимать на кассету видеокамеры и затем перегонять полученное в компьютер, либо сразу захватывать результат в компьютер.

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

Физиологически глаз человека отчетливо замечает паузы между сменами изображения в виде мерцаний, если их частота ощутимо меньше 50 Гц. А скорость проекции 8 мм кинопленок составляет 16 -18 кадр/сек, то есть в 3 раза меньше. Еще на заре кинематографа был найден простой и эффективный способ сделать смену кадров незаметной: свет от лампы проектора поступает в оптический тракт не постоянно, а перекрывается лопастями обтюратора. Лопастей три, и они трижды перекрывают свет от лампы за время проекции одного кадра (в момент одного из таких перекрытий и происходит смена кадров, что защищает глаз зрителя от наблюдения момента смены кадров с неизбежной смазанностью изображения).

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

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

Помучавшись с вариантами съемки с экрана в стандартных режимах проекции, энтузиасты начали усовершенствовать оборудование в самых разных направлениях, но в результате "естественного отбора" пришли к двум способам, обеспечивающим максимально возможное качество, и одновременно не слишком тяжелых в реализации и не требующих дорогого оборудования (для ориентации: профессиональные установки по пересъемке и оцифровке 8 мм кинопленки можно купить и готовые, но стоят они порядка нескольких тысяч долларов).

Оба способа требуют обязательного удаления обтюратора из проектора. Итак, вот эти два базовых способа:

  • покадровая пересъемка
  • съемка на малой скорости проекции избыточного видеоряда с последующим программным фильтрованием "лишних" кадров.

1.2. Покадровая пересъемка.

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

Синхронизации момента захвата добиваются с помощью несложных доработок, например микро выключатель (микрик), который нажимается выступом, устанавливаемым на главном валу проектора, подает сигнал в компьютер на захват 1 кадра. Главное здесь — регулировка фазы срабатывания такого датчика, чтобы реально захваченное с камеры в компьютер изображение (с учетом разнообразных задержек, как электро-механических так и программных) четко соответствовало моменту неподвижности кинокадра. С этим фактором и связана в первую очередь необходимость удаления обтюратора — время пригодное для захвата увеличивается почти в 3 раза, соответственно точность регулировки фазы требуется уже не такая высокая и настройку выполнить легче (это особенно важно ввиду некоторой нестабильности выше названных задержек).

С этими же задержками и их нестабильностью, а также определенными ограничениями скорости срабатывания программ захвата и самой камеры, связано и максимальная скорость захвата — реально качественный захват таким методом можно выполнить на скоростях до 10 к/с, а чаще — медленнее.

Подробнее о типовых конструкциях и настройках всего необходимого будет изложено в разделе 2 этой статьи.

1.3. Съемка на малой скорости проекции избыточного видеоряда с последующим программным фильтрованием "лишних" кадров.

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

  • удаление обтюратора (впрочем, это необходимо и при покадровом захвате по п.1.2);
  • не превышение граничной скорости проекции (это значение составляет около 8 кадр/сек, теоретические обоснования здесь не приводятся, но они вполне строго рассчитываются).

Собственно, всё… Такая переделка проектора оказывается даже проще, чем для покадрового захвата: не нужно прилаживать микрик и подключать его затем к компьютеру — достаточно удалить обтюратор и следить за скоростью (нижнее ее значение собственно методом не ограничено, можно хоть меньше 1 к/с, важно лишь, чтобы пленка не перегревалась на слишком малых скоростях при стандартной лампе).

Остальные сложности метода сосредоточены уже в последующей программной обработке полученного избыточного видеоряда.

Природа возникновения этой избыточности очевидна: проекция кинокадров идет на малой скорости, обычно порядка 4-8 к/с, а камера всегда снимает со скоростью 25 к/с (даже сложнее — 50 полей в секунду, каждая пара этих черезстрочных полей составляют 1 кадр, но сейчас в эти тонкости вникать не будем). Соответственно каждый кинокадр успевает попасть в 3, а то и 6 или больше видеокадра. Например, при скорости 8 к/с видеоряд будет содержать 3 примерно одинаковых кадра, полученные из 1 кинокадра, затем проектор начнет протягивать пленку (он делает это быстро, протяжка обычно короче, чем 1/6 периода смены кинокадров, но не мгновенная), и этот момент протяжки вероятно тоже попадет в один из видеокадров, в нашем случае допустим 4-й (он будет "смазанный"), затем вновь последуют 3 почти одинаковых кадра, содержащих картинку 2-го кинокадра, потом допустим смена кадров пройдет между моментами срабатывания электронного затвора видеокамеры и 8-й видеокадр будет содержать не переходный момент, а сразу следующий, 3-й кинокадр, ну и так далее.

Задача последующей обработки и заключается в удалении ненужных кадров и одновременном отборе лучшего видеокадра для каждого кинокадра (под лучшим понимается такой, который не содержит смазанности, возникающей во время смены кадров и подобных некачественностей). То есть в нашем примере желательно оставить допустим 2-й, 6-й и 9-й видеокадры (они средние в серии одинаковых и попадают на момент четкого стояния пленки), а кадры 1, 3-5, 7-8 удалить. Вот эту задачу и выполняет специальный программный фильтр GetDups, анализируя различия между соседними кадрами.

При покадровом захвате собственно решается та же задача отбора "моментов стояния" кинокадров, только она делается механическим способом.

Фильтр GetDups, работает на базе утилиты обработки видео, называемой AviSynth. Об установке на компьютер AviSynth-а и настройках фильтра будет рассказано в следующем разделе, пока же стоит лишь отметить, что разработка всего метода, в том числе написание фильтра GetDups была довольно сложным делом (саму идею впервые "озвучил" на форуме IXBT.com Eugen65, ее подхватил и успешно реализовал Fizick, далее GetDups усовершенствовался, в этих работах чуть позже принял участие и я), но далее для рядового пользователя, пожелавшего воспользоваться этим методом, все достаточно просто — ничуть не сложнее, чем установка и применение любой программы средней сложности, таких, как компьютерная игра, сетевая программа типа FlashGet или ICQ, видеоредактор и т.д.

2. Практическая реализация способов оцифровки 8мм кинопленок, описанных выше

2.1. Описание необходимого оборудования, общего для всех трех методов.

2.1.1. Проектор.

Кинофильм с кинопленки удобнее всего воспроизводить на специально предназначенном для этих целей кинопроекторе. Для 8мм кинопленок (как стандартных, так и Супер 8) в советские времена было выпущено несколько видов проекторов, отличающихся как конструктивно, так и по удобству использования, надежности работы и ряду дополнительных функций. Основные типы: "Русь", "Луч" и "Волна".  Одним из самых удобных является "Русь-2", но годятся все три базовые модели в разных модификациях. Существует и довольно много зарубежных моделей 8мм кинопроекторов, правда гораздо менее распространенных у нас. В целом все они пригодны для описанных выше способов оцифровки. На просторах бывшего Союза сохранилось довольно большое количество работоспособных (или легко доводимых до работоспособности) экземпляров таких проекторов. Чаще всего владельцы 8мм кинопленок имели и проекторы — возможно, они сохранились где-то в кладовках, сараях, чердаках и т.п. Но даже если проектора нет под рукой, его, как правило, можно без особого труда отыскать (по крайней мере в крупных и средних городах) на рынках соответствующей технической направленности, или по объявлениям… Стоимость их тоже обычно держится в разумных рамках (по примерным оценкам найти их можно по цене от 20 до 100$).

Для метода по пункту 1.1 проектор можно не дорабатывать, а только почистить, смазать нужные узлы (схема смазки и профилактики обычно приведена в инструкции) и, возможно, настроить натяжение пленки. Для более качественной оцифровки (пункты 1.2 и 1.3) нужны еще и более или менее значительные доработки проектора. Основная из них — удаление обтюратора (подробнее изложено в п.2.3).

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

2.1.2. Проекционный экран и другие методы ввода изображения в видеокамеру.

Можно использовать привычные экраны (специальный, либо простыню, либо меловую стену), но более качественный результат получается при проектировании изображения на обычный лист белой бумаги формата А4. Камеру при этом располагают вблизи ну и съемка ведется "в упор", такой способ обеспечивает более яркое изображение, лучшее качество наводки на резкость, потому качество пересъемки повыше да и условия работы более комфортны, например, не требуется полная темнота. Правда из-за близкого расположения проектора и камеры к экрану возникают геометрические искажения — оптические оси располагаются под довольно большим углом друг к другу (в идеале они должны быть параллельны).

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

Зато вполне жизнеспособным оказался способ прямой пересъемки "объектив — в объектив". В нем используются наработки другого метода — макросъемки: подобрав подходящую линзу перед объективом видеокамеры, можно обеспечить резкое изображение при очень близком расположении предмета съемки, соответственно наведя такую систему на кадровое окно кинопроектора с пленкой, можно добиться четкого изображения кинокадра во весь размер видеокадра. Простые линзы для макросъемки практически неприменимы (они создают большие хроматические искажения — всякие радужные ореолы у краев изображенных предметов и т.п.), а вот применение качественных фото-объективов вместо такой линзы дает очень хорошие результаты. Подробнее о реализации метода прямой пересъемки "объектив в объектив" планируется рассказать во второй статье на эту тему (см. главу 4). Пока же необходимую информацию можно собрать в ветке форума iXBT.com "Пара вопросов освоившим покадровый захват с 8мм кинопленки".

Здесь лишь отметим, что света, даваемого стандартной лампой проектора для прямой пересъемки "объектив в объектив", слишком много, есть даже риск повредить матрицу видеокамеры. Потому стоит поставить лампу гораздо меньшей мощности. Почти идеально подходят энергосберегающие лампы. О практической реализации такой замены планируется рассказать также во второй статье на эту тему.

2.1.3. Видеокамера и передача оцифрованного изображения в компьютер.

В целом для оцифровки годятся практически любые видеокамеры стандартного формата (для нас это PAL, для Штатов и ряда других неевропейских стран — NTSC). Так, размер стандартного кадра PAL 720*576, частота кадров 25 к/с. Это вполне соответствует максимально возможному качеству, которое можно получить с 8-мм кинопленки, а чаще значительно выше реальных возможностей изображения, даваемого малюсеньким кадриком 8-мм кинопленки — уж очень велико зерно кинопленки относительно масштабов этого кадра (подробнее о теоретическом обосновании и расчетах можно почитать в ветке [1] на iXBT.com).

Понятно, что речь идет о полноценных видеокамерах — использование видео-возможностей цифровых фотоаппаратов, мобильных телефонов и т.п. всерьез рассматривать не стоит…

Удобнее использовать цифровые видеокамеры — изображение сразу получается в цифровом формате. Но в целом вполне пригодны и аналоговые камеры, единственным неудобством будет необходимость дальнейшей оцифровки полученного аналогового видеосигнала с помощью плат оцифровки (ТВ-тюнера, видеокарты с видео-входом, спец-платы для видеомонтажа и т.п., см. статью [2]), или  непосредственно в процессе захвата изображения с кинопленки. Если цифровую камеру в ряде случаев (например, для способов п. 2.1 и 2.3) можно использовать просто в режиме съемки на носитель в камере (часто это очень удобно — не нужен компьютер рядом с установкой для пересъемки) и только потом сбрасывать этот цифровой видеопоток в компьютер, то для аналоговых камер помехи, вносимые в видеосигнал в процессе записи на ленту и последующего считывания с нее уже весьма ощутимы, потому оцифровывать лучше сразу в компьютер.

Из цифровых видеокамер определенное преимущество имеют DV-камеры, в первую очередь miniDV-камеры, как наиболее распространенные — DV-формат сейчас один из самых качественных и одновременно наиболее удобный для редактирования и дальнейшей обработки. Однако следует отметить, что и другие цифровые камеры (камеры с записью Mpeg2 или Mpeg4-формата, скажем mini-DVD или пишущие на жесткий диск или флешки и т.п.) вполне можно приспособить для данных целей.

2.2. Базовая часть установки для оцифровки 8мм-кинопленок.

Пора перейти от теории к практике…Итак, простейший вариант прямой пересъемки по п.1.1:

а) устанавливаем проектор (п. 2.1.1, проектор просто отрегулированный, доработок пока не требуется) и экран в виде обычного белого листа бумаги А4 (не блестящего) на небольшом расстоянии от проектора (около 1 метра);

б) устанавливаем камеру (удобнее — на штативе, хотя бы маленьком настольном) сбоку, и может быть, чуть спереди от проектора, поближе к оси проекции;

в) позиционируем проектор при включенной лампе без пленки так, чтобы свет от кадрового окна занимал почти весь лист, и соответственно наводим видеокамеру на этот световой прямоугольник, трансфокатором камеры подстраиваем масштаб;

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

д) теперь все готово к пересъемке — отматываем пленку на самое начало фильма (лучше к началу пленки добавить кусок пленки метра 2 длиной, желательно с изображением), выключаем свет и, пока проходит этот доп-кусок, нужно проверить правильность ранее сделанных настроек и, возможно, что-то подправить, а также установить нужную скорость проекции около 16 к/с,  и включить камеру на съемку.

Собственно, минимально-приемлемый процесс захвата организован.

2.3. Модификации базового варианта для метода съемки на малой скорости проекции избыточного видеоряда с последующим программным фильтрованием "лишних" кадров (по п. 1.3).

Рассмотрим сначала этот метод, а не метод покадрового захвата, поскольку переделки для его реализации минимальны.

Итак, имеем базовый вариант (п.2.1), относительно которого основным доработкам подвергнется проектор, все остальное оставляем как в базовом варианте, то есть захват ведется с экрана — листа бумаги А4.

В проекторе удаляем обтюратор (это 3-х-лопастная деталь, слегка напоминающая вентилятор, насаженная на главный вал проектора, лопасти обтюратора при вращении периодически перекрывают свет от проекционной лампы, падающий на кадровое окно). Аккуратисты снимают его путем достаточно сложной процедуры разборки и обратной сборки проектора (иначе его "цивилизованно" не снять), а "грубые люди" просто срезают лопасти ножницами по металлу — результат в обоих случаях одинаков (ну при аккуратном удалении обтюратор можно, конечно, вернуть на место, но я с трудом представляю себе ситуации, при которых это может понадобиться — пользоваться проектором по старому основному применению в наше время уже мало кому приходит в голову, а для оцифровки обтюратор только мешает). Для любителей цивилизованного подхода о процедуре аккуратного снятия обтюратора можно почитать в ветке на форуме iXBT.com [1].

Другие доработки не столь обязательны и связаны в первую очередь с необходимостью дополнительной защиты пленки от перегрева при медленных режимах проекции. В стандартной конструкции проектора предусмотрен дополнительный тепловой фильтр, который перекрывает световой канал при снижении скорости ниже порядка 4-5 к/с, а тем более при полной остановке двигателя. В реальных условиях оцифровки скорость проекции как правило и находится вблизи этих значений и тепловой фильтр сильно мешает качественной пересъемке. Потому его просто удаляют или блокируют в открытом состоянии. Ну а для защиты кинопленки приходится:

  • либо следить за скоростью проекции, не давая ей падать ниже 4-5 к/с, и мгновенно отключать лампу при внеплановой остановке пленки в проекторе;
  • либо ставить дополнительную вентиляцию (один из вариантов показан в п. 2.4);
  • либо менять лампу накаливания на энергосберегающую, которая греется значительно меньше при том же световом потоке (об этом более подробно будет рассказано во второй статье на эту тему, см. главу 4, в основном энергосберегающая лампа хорошо работает совместно со способом прямой пересъемки "объектив в объектив" — об этом тоже во второй статье).

Удалив обтюратор, можно сразу приступать к съемке на малой скорости проекции — все как в базовом варианте, только скорость проекции желательно выдерживать в диапазоне 4 — 7 к/с. Для проектора "Русь-2" это достаточно просто — регулятор скорости ставится близко к минимальному значению — минимум у исправного проектора и обеспечивает скорость порядка 4 к/с.

Тут много тонкостей и нюансов:

  • проектор в холодном состоянии "крутит" гораздо медленнее, чем хорошо прогретый (мой экземпляр, например, после получаса работы не понижает скорость ниже 5 — 6 к/с);
  • проектор в холодном состоянии не стартует при установке регулятора в минимум, то есть приходится стартовать в среднем положении регулятора и потом уменьшать до нужных 4 — 7 к/с;
  • для поддержания желаемой скорости нужен определенный опыт: субъективно, на слух, скорость даже 7 к/с ощущается, как "очень маленькая" и ее легко превысить, не заметив ее увеличения при прогреве проектора (я в свое время записал звук тарахтения проектора на желаемой скорости около 6 к/с на компьютер и включал эту запись, чтобы контролировать скорость на слух, сейчас такую запись можно слушать на Mp3-плеере и т.п.).

Отснятое DV-видео или захваченный прямо в компьютер видеофайл далее необходимо обработать фильтром GetDups, о чем будет рассказано отдельно в главе 3. На выходе мы получим качественный цифровой вариант нашего 8мм кинофильма.

2.4. Установка дополнительного вентилятора на проектор.

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

Проще всего на задней крышке проектора установить вентилятор от блока питания компьютера (старые блоки питания сейчас найти легко и снять от туда вентилятор, можно и купить его отдельно). Питается такой вентилятор постоянным током 12 В. Такое напряжение можно взять с соответствующих обмоток трансформатора проектора (например, от питания лампы) и выпрямить простым диодным мостиком. Вариант монтажа показан на рисунке ниже (в задней стенке прорезается дополнительное отверстие).

Такой вентиляции вполне достаточно для охлаждения пленки даже если она внезапно остановится, по меньшей мере пленка не желтеет в течении 5-10 секунд, чего достаточно для ручного выключения лампы.

2.5. Модификации базового варианта для покадрового захвата.

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

Простейший такой датчик представляет собою обычный микровыключатель (микрик), о котором уже упоминалось в п.1.2. Как его можно закрепить на проекторе "Русь" показано на втором рисунке. Микрик можно взять из старой мыши или приобрести отдельно.

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

Сигнал с датчика поступает в компьютер, который под управлением соответствующей программы захватывает 1 кадр, вал проектора проворачивается на очередной оборот, кинокадр меняется на следующий и датчик выдает очередной сигнал на захват кадра.

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

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

Ниже приведен процесс настройки и использования программы IuVCR для этих задач. Собственно в тонкостях настроек IuVCR помогут разобраться другие статьи, например "Оцифровываем видео при помощи ТВ-тюнера" [2]. Стоит лишь обратить внимание на то, что есть возможность включить покадровый захват в iuVCR. Она весьма неочевидна (можно облазить все настройки и не найти его), потому обратите на этот момент внимание! Правой клавишей мыши кликаем на кнопке "Начать запись" ("start record") и выбираем "Покадровый режим" ("Oneshot mode"). Далее курсор мыши наводится на кнопку "start record" и каждое нажатие левой кнопки мыши вызывает захват одного кадра в отдельный avi-файл. В дальнейшем эти файлы можно импортировать в видео редактор в режиме использования автодобавления нумерованных сегментов (при правильной настройке IuVCR создаются файлы пронумерованные подряд).

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

3. Последующая обработка захваченного видео. Утилита AviSynth

Качество изображения, полученного при пересъемке и оцифровке 8мм кинопленки, как правило, далеко от представлений о качестве даже любительских съемок современными видеокамерами — даже правильно захваченные кинокадры содержат царапины, пятна, зернистость, иногда заметно мерцание за счет разной яркости соседних кадров, заметны подергивания за счет неточности позиционирования кадра при движении пленки, весьма желательно подправить цвета, которые нередко тускловаты и т.д.

Ну и для способа, описанного в пункте 2.1, необходимо фильтрование "лишних" кадров из избыточного видеоряда, полученного съемкой на малой скорости проекции с помощью фильтра GetDups.

3.1. Таким образом, для получения качественного видео имеет смысл использовать специальную программу видеообработки — AviSynth, для которой разработано множество фильтров, в том числе и специально под задачи улучшения качества именно видео, полученного при захвате 8мм кинопленок (фильтры для AviSynth как правило бесплатные, что тоже немаловажно).

Подробно об установке и работе с AviSynth стоит прочесть статью “Основы использования утилиты AviSynth при обработке видео”. Здесь же я изложу только основные моменты этого процесса:

а) ставим AviSynth (где брать и как ставить — в вышеуказанной статье), при установке не забываем выбрать русский язык для Help-а;

б) при возникновении непонятностей и проблем обращаемся к вышеуказанной статье или русскоязычному Help-у, хотя в целом там все довольно просто;

в) для применения фильтров пишется (в любом простом редакторе, ну типа Блокнота Windows) текстовый файл с расширением .avs, например, 1.avs, который содержит как минимум одну строку — открытие файла источника, ну то есть вашего видео файла, который планируется фильтровать, строка выглядит примерно так:

AviSource("Film.avi")

Этот однострочный avs-файл (avs-скрипт) позволит вам открыть файл с именем Film.avi (имя задается для вашего реального видеофайла, возможно, перед именем будет путь к файлу, если он расположен в другом каталоге относительно avs-файла), причем открытие производится не напрямую, а уже через AviSynth. В дальнейшем в avs-скрипт добавляются строки, в которых вызываются нужные фильтры;

г) avs-скрипт открывается большинством видео плееров и видео редакторов (аналогично с открытием любых видеофайлов) и в дальнейшем плеер или редактор считает, что работает непосредственно с фильмом-источником (тем самым, открытым в первой строке avs-скрипта), не подозревая, что этот фильм еще и обрабатывается фильтрами в AviSynth;

д) для конкретики рассмотрим процесс открытия avs-скрипта простейшей программой редактирования видео VirtualDub или VirtualDubMod — чуть более удобную его разновидность (эту программу имеет смысл установить и освоить — кроме описываемых сейчас процедур она будет крайне полезной для несложных операций, типа вырезать ненужные куски фильма, объединить несколько фрагментов в один в нужной последовательности, получить информацию о видеофайле и т.д.; более подробно познакомиться с работой в VirtualDub стоит отдельно, например работа в ней изложена в статьях [2] и [3]); итак запускаем VirtualDubMod, выбираем в закладке File пункт Open Video File и в открывшемся стандартном диалоге открытия файла находим нужный каталог и выбираем созданный нами ранее файл 1.avs — если все в порядке (внутри файла 1.avs содержится правильно написанная команда открытия входного видеофайла, этот файл есть на диске и путь к нему указан правильно и т.д.), то открыв этот скрипт 1.avs, мы увидим в окне редактора 1-й кадр нашего фильма Film.avi (иначе возникнет окно, сообщающее о конкретной ошибке — разбор этих ошибок описан в статье [3]); если у нас в качестве входного файла взят избыточной видеофайл, захваченный при медленной проекции кинопленки (п. 2.3), мы сможем визуально увидеть, нажимая на клавиатуре стрелку вправо, полученные при этом дублирующиеся кадры (как в описанной в п.1.3 последовательности) — например 3 одинаковые, один смазанный, снова 3 одинаковые и т.д.

е) далее имеет смысл усложнить наш скрипт, добавив в него фильтр, ну например тот же GetDups, который уберет ненужные кадры из нашей избыточной последовательности (п. 2.3); фильтр поставляется в виде файла GetDups.dll, который либо размещается в специальном подкаталоге каталога AviSyntsh, либо просто в удобном для нас месте, например, для простоты, в том же каталоге, где и наш скрипт 1.avs и видеофайл Film.avi.

Пара слов о самом фильтре:

GetDups - (переводится примерно: "отобрать дублирующиеся" — имеются в виду кадры) — позволяет отфильтровать избыточный видеоряд от ненужных кадров. Собственно детали его работы не так важны.

Просто в наш avs-скрипт (п. 3.1) добавляем несколько строк (кроме строки, вызывающей сам фильтр, нам понадобятся несколько вспомогательных строк, также отмечу, что всё, написанное в скрипте после символа # и до конца строки является комментарием, то есть не обрабатывается — этим мы и воспользуемся для пояснений по каждой строке):

LoadPlugin("GetDups.dll")  #загружаем фильтр GetDups
AviSource("Film.avi")  #открываем наш «избыточный» видеофайл
assumeTff()   # задаем нужный порядок полей (комментарии ниже)  
GetDups()     # вызываем фильтр GetDups с параметрами по умолчанию
AssumeFps(16) # задаем нужную частоту кадров — для 8мм кинопленок она 16 к/с,
              # а для Супер 8 — 18 к/с

О порядке полей: фильтр GetDups чувствителен к порядку следования полей интерлейсного кадра. Собственно об интерлейсе здесь рассказывать не будем, но для правильной работы фильтра и метода в целом следует задать его правильно. Для этого в AviSyntsh предусмотрены две команды принудительного задания порядка следования полей:

assumeTff — первым идет верхнее (Top) поле;
assumeBff — первым идет нижнее (Bottom) поле  

Какую команду из двух выбрать — зависит от способа оцифровки нашего видео: как правило видео, слитое в компьютер из цифровой (miniDV) камеры имеет порядок полей Bff, а видео, оцифрованное видео-тюнером и подобными устройствами преобразования аналогового видео в цифру — порядок полей Tff.

Параметры для GetDups в простых случаях можно не задавать, если же они и задаются, то чаще всего меняется параметр threshold - порог срабатывания, по умолчанию он равен 7, при необходимости его изменения, допустим в 11, строка будет выглядеть:

GetDups(threshold=11)

Подробнее о настройках фильтра следует читать в документации к GetDups.

Наконец, мы можем увидеть, что открытый в VirtualDubMod с помощью нашего модифицированного avs-скрипта избыточный видео файл уже отфильтрован GetDups-ом, то есть дублирующиеся и смазанные кадры исчезли и двигаясь по кадрам с помошью клавиши «стрелка вправо» мы видим ту же последовательность одиночных кадров, что и на кинопленке.

Теперь самое время сохранить этот отфильтрованный видеофайл в новый файл (нажав F7 в VirtualDubMod, мы попадем в диалог сохранения выходного файла — здесь, кроме выбора выходного каталога и ввода нового имени файла, стоит обратить внимание на тип сжатия выходного файла — кнопка Change в поле Video Compression — по умолчанию VirtualDub будет сохранять видео в несжатом виде, что даст файл огромного размера). В целом, отладив наш скрипт в VirtualDubMod-е и убедившись, что он работает корректно, можно и не сохранять пока выходной файл. Часто пользователи этого метода открывают этот скрипт прямо из программы-кодировщика (например Canopus Procoder) и сразу кодируют в Mpeg2  для дальнейшего авторинга и записи на DVD — при этом не создается никаких промежуточных файлов, а фильтрование с помощью GetDups идет одновременно с кодированием в Mpeg2, что часто очень удобно.

3.2. Ну и в заключение несколько слов о фильтрах, применяемых именно в обработке видео из 8мм кинопленок (подробнее о них стоит прочесть на странице автора Fizick [4]):

  • DeScratch — удаление царапин
  • DeSpot — удаление пятен
  • HotSpot — компенсация неравномерного освещения экрана (как правило в центре изображение гораздо ярче, а к углам — темнее)
  • DeFlicker — стабилизация средней яркости (убирает мерцание из-за разной яркости последовательных кадов)
  • DeGrainMedian — уменьшение зернистости (довольно грубое удаление крупных шумов)
  • Fft3dFilter — уменьшение шумов видео (более тонкое фильтрование шумов, гораздо более совершенный, хотя и очень медленный фильтр, его применяют не только для обработки видео с кинопленок, а и довольно широко вцелом в видеообработке)
  • DePan — многофункциональный фильтр, из набора его функций чаще всего в оцифровке 8мм фильмов используют две функции:
    • DePan — с определенным набором параметров позволяет преобразовать частоту из 16 к/с в 24 к/с (24 — вполне приемлемое приближение для частоты PAL-видео, которая равна 25 к/с (см. документацию к DePan, раздел "Использование DePan для изменения частоты кадров") и
    • DePanStabilize — позволяет неплохо скомпенсировать дрожание кинокадров из-за нечеткого их позиционирования в кадровом окне (особо заметно при "побитой" перфорации, но иногда проявляется даже при качественной пленке и отрегулированном проекторе).

4. Заключение

Собственно, на этом можно и закругляться…

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

P.S. Кроме описанного выше я планирую написать вторую часть статьи, в которой описать ряд более сложных усовершенствований, к примеру:

  • замена лампы накаливания на энергосберегающую люминесцентную лампу;
  • реализация способа прямой проекции "объектив — в объектив";
  • стабилизация скорости проекции (например, на 7 к/с — оптимальной скорости для метода по пункту 2.3);
  • понижение скорости проекции за счет редуктора (это важно для проекторов, у которых не регулируется скорость вращения двигателя, например для 16 мм проекторов).

В целом большинство из материалов этой статьи (да впрочем и второй, пока не написанной, части) можно найти в ветке форума iXBT.com, здесь я просто изложил необходимое в более концентрированном и, надеюсь, более понятном виде.

Литература и ссылки по теме:

  1. Тема в форуме iXBT.com "Пара вопросов освоившим покадровый захват с 8мм кинопленки"
  2. Статья Андрея Гуле  "Оцифровываем видео при помощи ТВ-тюнера"
  3. Статья Александра Балахнина (Fizick) "Основы использования утилиты AviSynth при обработке видео"
  4. Страница Fizick с его фильтрами для AviSynth

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

Дерзайте…

 [Все статьи в разделе «Цифровое Видео»]




28 апреля 2007 Г.

8

8

, 8- (8 8 ) 80-90 , . , , , , , ...

VHS , Video CD, DVD-Video .., . 2 :

  • ( , ; , : -
  • .

, , , , , . , , -: , . ( ) .

  1. 8 ,
  2. 8
  3. . AviSynth

1. 8 ,

1.1. , . , :

  • 2-3 ;
  • ;
  • ;
  • , , .

, , , . , .

, 50 . 8 16 -18 /, 3 . : , . , ( , ).

, , - ( ), , . - , , .

, : , . , , , ...

, , " " , , ( : 8 , ).

. , :

  • "" .

1.2. .

, , . , , , , .

, (), , , 1 . , ( , - ) . 3 , ( ).

, , 10 /, .

2 .

1.3. "" .

( 1.1) . , , , , , : , . :

  • (, .1.2);
  • ( 8 /, , ).

, , : ( , 1 /, , ).

.

: , 4-8 /, 25 / ( 50 , 1 , ). 3, 6 . , 8 / 3 , 1 , ( , , 1/6 , ), , 4- ( ""), 3 , 2- , 8- , , 3- , .

( , , ). 2-, 6- 9- ( ), 1, 3-5, 7-8 . GetDups, .

" " , .

GetDups, , AviSynth. AviSynth- , , , GetDups ( "" IXBT.com Eugen65, Fizick, GetDups , ), , , , , , , FlashGet ICQ, ..

2. 8 ,

2.1. , .

2.1.1. .

. 8 ( , 8) , , , . : "", "" "". "-2", . 8 , . . ( ) . 8 , - , , .. , , , ( ) , ( 20 100$).

1.1 , , ( ) , , . ( 1.2 1.3) . — ( .2.3).

, ( .2.3).

2.1.2. .

(, , ), 4. " ", , , , , . - ( ).

, . , , . .

" ". : , , , . ( ..), - . " " (. 4). iXBT.com " 8 ".

, , " ", , . . . .

2.1.3. .

( PAL, — NTSC). , PAL 720*576, 25 /. , 8- , , 8- — ( [1] iXBT.com).

, — - , ..

— . , (-, -, - .., . [2]), . (, . 2.1 2.3) ( — ) , , , .

DV-, miniDV-, — DV- . , ( Mpeg2 Mpeg4-, mini-DVD ..) .

2.2. 8-.

, .1.1:

) (. 2.1.1, , ) 4 ( ) ( 1 );

) ( — , ) , , , ;

) , , , ;

) ( ) , , ( ) — , , ( , — );

) — ( 2 , ), , -, , , - , 16 /, .

, - .

2.3. "" ( . 1.3).

, , .

, (.2.1), , , — 4.

( 3-- , , , , ). ( "" ), " " — ( , , , , — , ). iXBT.com [1].

. , 4-5 /, . . . :

  • , 4-5 /, ;
  • ( . 2.4);
  • , ( , . 4, " " — ).

, — , 4 — 7 /. "-2" — — 4 /.

:

  • "" , ( , , 5 — 6 /);
  • , 4 — 7 /;
  • : , , 7 / , " " , ( 6 / , , Mp3- ..).

DV- GetDups, 3. 8 .

2.4. .

, , ( , ).

( , ). 12 . (, ) . ( ).

, 5-10 , .

2.5. .

( , , ) , .

(), .1.2. "" . .

, : , , , ; ; - .

, 1 , , .

, IuVCR "" — ( ""), ( , ). "" , , ...

, , . ( ) . 1 IuVCR ( , , IuVCR).

IuVCR . IuVCR , " -" [2]. , iuVCR. ( ), ! " " ("start record") " " ("Oneshot mode"). "start record" avi-. ( IuVCR ).

— , iXBT.com — ( ) .

3. . AviSynth

, 8 , , — , , , , , , ..

, 2.1, "" , GetDups.

3.1. , — AviSynth, , , 8 ( AviSynth , ).

AviSynth AviSynth . :

) AviSynth ( — ), Help-;

) Help-, ;

) ( , Windows) .avs, , 1.avs, — , , , :

AviSource("Film.avi")

avs- (avs-) Film.avi ( , , , avs-), , AviSynth. avs- , ;

) avs- ( ) , - ( , avs-), , AviSynth;

) avs- VirtualDub VirtualDubMod — ( — , , , ..; VirtualDub , [2] [3]); VirtualDubMod, File Open Video File 1.avs — ( 1.avs , ..), 1.avs, 1- Film.avi ( , — [3]); , (. 2.3), , , ( .1.3 ) — 3 , , 3 ..

) , , GetDups, (. 2.3); GetDups.dll, AviSyntsh, , , , , 1.avs Film.avi.

:

GetDups - ( : " " — ) — . .

avs- (. 3.1) ( , , , , , # , — ):

LoadPlugin("GetDups.dll") # GetDups
AviSource("Film.avi") #
assumeTff() # ( )
GetDups() # GetDups
AssumeFps(16) # 8 16 /,
# 8 18 /

: GetDups . , . AviSyntsh :

assumeTff — (Top) ;
assumeBff — (Bottom)

— : , (miniDV) Bff, , - — Tff.

GetDups , , threshold - , 7, , 11, :

GetDups(threshold=11)

GetDups.

, , VirtualDubMod avs- GetDups-, , .

( F7 VirtualDubMod, — , , — Change Video Compression — VirtualDub , ). , VirtualDubMod- , , . - ( Canopus Procoder) Mpeg2 DVD — , GetDups Mpeg2, .

3.2. , 8 ( Fizick [4]):

  • DeScratch
  • DeSpot
  • HotSpot — ( , — )
  • DeFlicker — ( - )
  • DeGrainMedian — ( )
  • Fft3dFilter — ( , , , , )
  • DePan — , 8 :
    • DePan — 16 / 24 / (24 — PAL-, 25 / (. DePan, " DePan ")
    • DePanStabilize — - ( "" , ).

4.

,

, , 2.3, , . , (.2.2), , .

P.S. , , :

  • ;
  • " — ";
  • (, 7 / — 2.3);
  • ( , , 16 ).

( , , ) iXBT.com, , , .

:

  1. iXBT.com " 8 "
  2. " -"
  3. (Fizick) " AviSynth "
  4. Fizick AviSynth

, .

 

[ ]