Как стать автором
Обновить

Сканируем 35-мм киноплёнку дома (Часть 4. Финал)

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров2.6K
Практически полноценный сканер
Практически полноценный сканер

Привет, Хабр! Это заключительная часть из цикла статей по оцифровке киноплёнки формата 35-мм в домашних условиях с бюджетом в $150. Изначально 4я часть в план не входила(3-я должна была быть последней) и написана по заявкам читателей 1-3 частей, которым стало интересно как работать с полученным со сканера материалом. Эта статья будет в формате туториала по работе со сканером и полученным материалом

В предыдущих трёх частях был описан процесс разработки шайтан-машины начиная от размытых идей, «книжных» колхозов, ручной съемки каждого кадра и закончив работающим опытным образцом на КПДВ. Но наличие сканера само по себе не значит, что можно начинать в конвейерных масштабах оцифровывать всё что попадёт под руку и что получится выпросить у знакомых/друзей или просто купить. Я пока не знаю как весь процесс свести к нажатию одной кнопки «Сделать зашибись!» и поэтому после проделывания огромной работы по разработке, осталась ещё просто «большая» работа — превратить набор фотографий в «кино». Я постараюсь описать общий подход к процессу в котором применяется моё решение. Читатели, которые по роду своей деятельности занимаются реставрацией плёнок навряд‑ли найдут что‑то новое(скорее найдут косяки и ляпы), но те кто не знаком(а таких большинство), увидят каким может быть процесс реставрации. Ну а я попробую показать, какой опыт получил со своих экспериментов.

Для тех, кто в танке предлагаю сначала ознакомиться с предыдущими частями:

Часть 1

Часть 2

Часть 3

В конце будут ссылки на материалы для желающих побывать в роли реставратора.

  1. Зарядка плёнки и настройка сканера перед запуском

  2. Импорт отсканированных кадров в Davinci Resolve

  3. Восстановление цветового баланса

  4. Исправляем геометрию кадра и стабилизируем его

  5. Сканируем оптическую фонограмму

  6. Обработка звука

  7. Сведение дорожек и полировка изображения

Часть четвёртая. Применение сканера в практической задаче и работа с материалом

Зарядка плёнки и настройка сканера перед запуском

В течении трёх предыдущих частей я «рожал» рабочую модель сканера, детали которого полностью напечатаны на 3D‑принтере. Пора испытать его на какой‑нибудь практической задаче. Вообразим, что мне принесли бобину и поставили задачу оцифровать определённый её фрагмент. Для упрощения пусть это будет выпуск ералаша №69(1988), и а за фрагмент обозначим сценку “Однажды летом”, также пусть мне уже известно что она идёт первой, известно что в каждом выпуске по 3 сценки и каждая длится примерно одинаково за редкими исключениями, а один выпуск длится 10 минут(15000 кадров). Из этого можно сделать вывод что мне надо оцифровать 5000 кадров, плюс-минус. С прикидыванием в уме завершено и теперь надо зарядить плёнку. В сканере плёнка заряжается и проходит следующим путём: Бобина->Направляющий валик->Кадровое окно->Привод ЛПМ->Направляющий валик->Датчик выпадения->Направляющий валик->Датчик натяжения->Бобина.

Стрелочками показана схема прохождения плёнки через сканер
Стрелочками показана схема прохождения плёнки через сканер

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

Квадратными скобками выделяется параметр который в данный момент редактируется
Квадратными скобками выделяется параметр который в данный момент редактируется

Баланс белого задаётся с цифровой клавиатуры, маппинг которой описывался во 2й части. Советские плёнки производились по немного устаревшей технике полива эмульсии, поэтому они выцветают в красноту и по моим наблюдениям, в первую очередь страдает зелёная компонента. Исходя из таких выводов мне нужно задать пониженную яркость красного, близкий к максимальному уровень зелёного и что-то среднее для синего. Ввод значений последователен R->G->B, для лучшего восприятия выбранная для редактирования компонента выделена квадратными скобками, сразу после ввода подсветка кадра переключается на запрограммированный уровень яркости компоненты что позволяет на ходу проверять правильность выбранных значений. Переключение происходит по нажатию “#”, если нужно поменять цвет — нажимаем “*” и начинаем по новой с красного — в принципе можно доработать гибкость и позволить юзеру управлять “окном” из квадратных скобок, чтобы изменить только нужный параметр не перезаписывая конфиг полностью.

Лайфхак: Чтобы точно подстроить баланс белого под характер выцветания плёнки, её можно аккуратно руками протащить через кадровое окно до первого кадра с оттенками серого цвета

После программирования баланса белого сканер готов к запуску:

Настройка завершена
Настройка завершена

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

Шанс "удачного" попадания небольшой, если не делать специальных отметок на ракорде заранее
Шанс "удачного" попадания небольшой, если не делать специальных отметок на ракорде заранее

Моё предположение оказалось верным, кадр на плёнке не попадает полностью в снимок, и его надо отрегулировать. Здесь не нужно влезать в ЛПМ и что-то крутить — всё можно сделать программно — расположение кадра относительно камеры можно подстроить нажимая соответствующие кнопки на клавиатуре. Выравниваю кадр и вот теперь могу запустить и пойти по своим делам(но позже выяснится что ракорд тоже «съехавший» из-за кривой склейки). Я знаю, что примерно на счётчике 6000(ракорд + интро = ~1000 кадров) мне надо остановить процесс. Через несколько часов сканер выполняет поставленную задачу и его можно останавливать. На этом работа с носителем закончена, и вся дальнейшая работа будет проходить за монитором.

Импорт отсканированных кадров в Davinci Resolve

Смотрим, что записалось на карту памяти:

Файл .rscheck.tmp остался после вставки карты памяти в телефон
Файл .rscheck.tmp остался после вставки карты памяти в телефон

Пусть у вас не возникают вопросов насчёт количества папок. Это особенность применяемой зеркалки — для упрощения разбора материалов, в каждой папке хранится 999 фотографий в формате Nikon RAW(каждая занимает примерно 19 мегабайт). Всего сканер сделал 5231 снимок разрешением в 24 мегапикселя, что по итогу заняло 99 гигабайт места на карте(на справку — вся бобина «весит» 230-250 гигабайт). Часть снимков не содержит полезной информации так как на них ракорд и переходная область, но «для антуража» я их тоже включу в работу. Дальше предстоит работа в Davinci Resolve 19

Resolve крайне тяжёлая и для комфортной работы рекомендуется компьютер на базе CPU R7+/i7+ с видеокартами NVidia старших моделей серии не ниже 1000, с установленным ОЗУ не меньше 64 Гб. Есть поддержка нескольких видеокарт если они одинаковых моделей. Про Radeon ничего не скажу так как не проверял, но говорят Resolve с ними не очень в ладах

Настраиваем разрешение проекта 6016х4000 пикселей, частоту кадров равную 25, не 24, так как 69й выпуск ералаша снимался для трансляции по ТВ в системе SECAM и загружаем все файлы на временную шкалу(перед этим можно импортировать папку нажав Import Media Folder слева над “Master”). После импорта всех снимков проект принимает следующий вид

Переходим к настройке импортированных элементов. По умолчанию каждый снимок импортируется как клип, и чтобы восстановить оригинальную скорость киноплёнки нужно изменить продолжительность клипа, чтобы он занимал не больше одного кадра. Это осуществляется следующим способом: Жмём CTRL+A на временной шкале, выделяя все элементы и в контекстном меню выбираем “Изменить длительность”. В появившемся диалоговом окне переключаем формат на “Frames”, задаём длительность в 1[кадр] и ждём пока программа подумает, обычно не больше минуты-двух и результатом работы будет следующий вид временной шкалы:

Если вам кажется что шкала пустая - вам кажется =)
Если вам кажется что шкала пустая - вам кажется =)

Такое произошло, так как я всего лишь изменил длительность «слайда», но сами слайды остались на своих позициях. Это также можно быстро исправить. Переключаемся на вкладку «Монтаж»(третья слева кнопка на тулбаре снизу), нажимаем CTRL+A на временную шкалу и теперь уже заходим в меню “Правка” выбрав пункт “Удалить промежутки”. Здесь оставляем программу подумать уже на несколько минут дольше(для избегания вылетов советую операции изменения длительности и подгонки выполнять загружая снимки порциями, например по одной папке за раз). Софтина может зависнуть на время обработки, переживать не надо — просто нужно ждать когда завершит, либо это через 5 минут произойдёт либо через 15. После успешного выполнения операции подгонки шкала изменит свой вид на сплошную полоску, и теперь мне доступна возможность в рамках предпросмотра прогнать какой-нибудь отрезок:

В зависимости от того, как соориентирована плёнка относительно камеры при оцифровке Лучом-1-35 — изображение может быть перевёрнутым, может быть отзеркаленным а может и то и другое сразу. Это не представляет какой-либо угрозы и лечится прямо на месте во вкладке "Инспектор"

Продолжаем работу. Помнится мне, что интрошки советского ералаша были довольно таки яркими и красочными с синим фоном. У меня же в следствии выжигания красителей + их деградации от времени фон стал фиолетовым. Так как я импортировал RAW, то уровень экспозиции оставлен дефолтным[0] что делает снимки тёмными(я сомневаюсь что экспозиция не записана в RAW, может это Resolve его не прочитал). И здесь разработчики программы снова пошли в сторону удобства(эх, пойти бы им разок тропинкой оптимизации) и поэтому я возвращаюсь на вкладку “Сборка”(вторая слева на тулбаре снизу), ещё раз выделяю все элементы[CTRL+A] и открыв окно “Инспектор” во вкладке “Изображение” меняю “Проект” на “Клип”, ставлю резкость 28 единиц и экспозицию 2.00. Остальное можно оставить как есть, настройки цвета будут в другой вкладке:

Экспозицию нужно увеличивать так как в RAW она не прописана
Экспозицию нужно увеличивать так как в RAW она не прописана

Восстановление цветового баланса

Переключаемся на вкладку “Цвет”, и пока ничего не трогаем. По умолчанию предлагается настройка цвета индивидуально для каждого “клипа”, но сейчас нужно убрать красноту и по возможности восстановить яркости зелёной и синей компоненты. В выпадающем списке над окном узлов вместо “Клип” выбираем “Временная шкала”, и следующим будет добавление шаблона узлов для редактирования цветов по компоненте отдельно. Двойным нажатием ALT+Y вставляем шаблон, состоящий из пустышки, сплиттера, узла комбинирования и пустышек по одной на каждую компоненту. Теперь переходим к поверхностному восстановлению цветов, для удобства можно переключиться на RGB монитор и включить фильтр НЧ. Алгоритм прост и он следующий — по каналам раздельно сначала корректиуем тени, так чтобы их яркость находилась на уровне примерно 5%, затем корректируем светлые участки — на уровень 90-95% самый яркий, затем корректируем полутона чтобы диаграммы на RGB-мониторе не были сплюснуты и не были “заломлены”. Дополнительно можно поиграться с HDR-кругами, кривыми, но в итоге должен получиться примерно следующий результат:

Обычно чтобы изображение на плёнки стало близким к оригиналу достаточно отрегулировать только 3 параметра
Обычно чтобы изображение на плёнки стало близким к оригиналу достаточно отрегулировать только 3 параметра

На этом восстановление баланса цвета завершаем и рендерим. Так как это ещё далеко не окончательный вариант, рендерить нужно с сохранением качества в жертву свободного места на диске. В моём кейсе выполняется рендер в 6016х4000 в формате QuickTime с кодированием DNxHR HQX 12-bit(размер составил ~50 Гб на 3 минуты). Resolve иногда любит без причины вылетать, лечится только созданием нового проекта и повтора всех предыдущих действий, поэтому я дроблю процесс на несколько проектов. Пора перейти к более душному для ПК этапу — видео надо стабилизировать, убрать дисторсии, убрать геометрические искажения — подушкообразость, перекос. Это будет в новом проекте. Первым делом надо исправить дисторсии, которые были внесены моим макро-переходником, и опять никаких сложных действий проводить не нужно. Во вкладке “Цвет” нужно добавить шаблон узлов двойным нажатием ALT+Y и перейдя во вкладку параметры переключить режим вкладки с “Параметры редактирования” на “Параметры узла”, таким образом появляется возможность присваивать индивидуальные для каждого узла значения. Дисторсии на скриншоте ниже исправились настройками R-G-B 1.005-1.000-0.995, проверять насколько хорошо подобраны настройки лучше всего на звуковой дорожке в углу кадра:

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

Исправляем геометрию кадра и стабилизируем его

Теперь можно переходить к работе с геометрией кадра, которая будет проводиться в Fusion(также распространяется как отдельная программа). На вкладке «Монтаж» вызываем контекстное меню над нашим клипом и выбираем «Создать клип на стр. Fusion». Далее нужно добавить и настроить фильтры. Я добавляю фильтры в следующем порядке: фильтр “Преобразование(Xf)", фильтр “Искажение оптики(Lens)", настроенный на удаление подушки искажений — проще удалять настраивая два ползунка искажений по X и по Y. В фильтре Xf исправляется перекос кадра.

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

Теперь перейдём к стабилизации. В текущем виде алгоритм стабилизации будет работать плохо, так как контраст между отверстием перфорации и основой плёнки довольно слабый и его нужно усилить. Это можно сделать добавлением узла “Яркость/контраст(B/C)” и настройкой параметров надо добиться хорошего контраста между перфорацией и основой:

Тонка рамка вокруг отверстия перфорации как нельзя лучше
Тонка рамка вокруг отверстия перфорации как нельзя лучше

Для упрощения жизни можно обесцветить кадр. Ещё надо принять во внимание моё замечание из предыдущей части насчёт мерцания подсветки на базе WB2812, и поэтому также нужно добавить узел устранения мерцания «Удаление мерцания» где в настройках задаётся ограниченный областью с дырками участок анализа. Можно и без этого узла обойтись, но тогда трекинг может останавливаться при слишком сильном мерцании. Нередко каждый скан представляет из себя частный случай, поэтому универсального совета на все случаи жизни дать не получится и нужно действовать по ситуации. Последним пунктом здесь будет узел плоскостного трекера[planar tracker], который может быть настроен примерно так:

Ничего сложного придумывать не надо, просто нужно обвести два-три отверстия по получившейся "чёрной" рамке
Ничего сложного придумывать не надо, просто нужно обвести два-три отверстия по получившейся "чёрной" рамке

Трекать нужно перфорацию, так как она единственный статичный относительно кадра элемент(считается статичным, по факту зависит от качества кинокопира, на котором создавалась кинокопия). Я обычно трекаю две или три дырки — так надёжнее. Обратите внимание на то, что чтобы получить высокое качество трекинга, рамку нужно проводить прямо по границе отверстий, как на скрине. Трекать можно перфорацию как слева так и справа, разницы никакой. Кнопкой “Set” задаётся референсный кадр, относительно которого будет отслеживаться положение на других кадрах, поэтому в качестве референсного лучше выбрать наиболее удачный и можно запускать трекинг. В Resolve 19 некоторые фильтры не оптимизированы для CUDA/OpenCL, поэтому сам процесс будет довольно долог — до 10-15 часов и при этом будут нещадно жраться как ресурсы ЦП, так и ОЗУ, видеокарты, видеопамяти. Автор рекомендует планировать такие операции на то время, когда компьютер будет не нужен — например перед сном, в ином случае можно "придушить" Resolve ограничив использование VRAM/RAM. Иногда трекинг может прерываться если в зону перфорации попадает мусор, тогда нужно пропустить несколько кадров и попытаться провести трекинг в обратном направлении до места, где он прервался в предыдущий раз. Когда процесс трекинга будет завершён, в настройках узла режим работы нужно переключить с “Track” на “Stabilize” и нажать соответствующую кнопку. Если возникают проблемы с трекингом ракорда, то на него можно забить. Параметры по умолчанию оптимальные, в комментариях не нуждаются так как понятны интуитивно. После выполнения стабилизации нужно не забыть отключить узел регулировки яркости/контрастности и фильтр мерцания(можно оставить и перенастроить на всё изображение, но тогда ждать придётся о-о-о-очень долго):

Два узла выше - нужны только во время трекинга, в остальное время их можно отключить
Два узла выше - нужны только во время трекинга, в остальное время их можно отключить

И можно выполнять рендер, с такими же параметрами как и прошлый так как дальше нужно будет вытаскивать оптическую фонограмму. В Fusion размер кадра привязан к пропорциям, поэтому просто выполнить два раза рендер в разном разрешении и пропорциях довольно таки сложно и потребует кучу времени, которое уйдёт впустую — проще и быстрее будет отрендерить в исходном разрешении и на отрендеренном видео уже выполнить рендер фонограммы из отдельного проекта. Тут надо сказать что я мог бы всё делать в одном проекте, но в таком случае если на каком-то этапе обнаружится ошибка то чтобы её исправить нужно будет заново всё настраивать, и есть некоторая вероятность что какая-то деталь будет упущена. Поэтому в процессе работы над плёнкой проекты могут плодиться до 5-8 штук, которые можно будет удалить после завершения всей работы.

Создаём третий проект с разрешением 1200х3600 пикселей под оптическую фонограмму, в котором отрендерим только звуковые дорожки для программного сканирования. И вот тут надо объяснить почему я пользуюсь понятием “больше мегапикселей — выше качество”. Само изображение может быть расфокусированным, или содержать иные дефекты но фонограмма представляет собой звук, который считывается через щель высотой 100 мкм(насколько я знаю — для Hi-Fi ещё меньше). Понятное дело что маленькое разрешение не даст нужной детализации и звук будет либо зашумлен, либо приглушён, ну или всё вместе. Для 35мм киноплёнки идеалом будет разрешение в 25-30 мегапикселей, только из-за фонограммы. Немую 35мм плёнку можно отсканировать с более низким требованием в 15-20 мегапикселей. В проекте нужно обрезать кадр только до области с фонограммой и при этом избегать артефактов стабилизации в виде плавающей рамки вокруг изображения так как это будет создавать артефакты в звуковой дорожке.

Внимание: Не обрезайте кадр по высоте впритык к высоте видимого изображения! Идеально снизу и сверху должен быть фрагмент соседних кадров — область высотою в 4-7% от высоты кадра. Позже расскажу почему это обязательно.

Этот проект уже надо будет рендерить в картинки формата DPX(alpha 8 bit), перед этим нужно во вкладке “Цвет” вставить шаблон разделения/комбинирования цвета и на вывод подать только зелёную компоненту. Зелёная компонента выбрана как наиболее контрастная:

Сканируем звук

Предстоит более интересный этап — программное сканирование звука. Я пользуюсь решением AEO-Light, разработанным хорошими людьми из университета Южной Калифорнии, которое можно скачать с GitHub(также релиз можно найти в каталоге с материалами). AEO написан с применением Qt в качестве интерфейса, но требует внимательного подхода, потому что практически не имеет средств защиты от дурака и упадёт от почти любого неосторожного действия. Кратко опишу, как она работает. В снимке с областью, обозначенной для сканирования, проход идёт сверху-вниз построчно. В каждой строке пикселей сравнивается количество светлых и тёмных пикселей, и из этого соотношения высчитывается значение «напряжения» в полученном семпле. Как только завершён проход, загружается следующий кадр, в котором выполняется проход и затем идёт сравнение начала фонограммы на новом кадре с конца предыдущего кадра в поисках совпадений. На основе информации полученной в результате поиска звук с предыдущего кадра «аккуратно» стыкуется со звуком на следующем кадре. В случае неуспеха проводится грубая стыковка. Процесс повторяется, пока не будет достигнут конец выбранного видеоряда или заданного для сканирования интервала.

Если описать пример работы AEO-Light картинкой, то это наиболее достоверная
Если описать пример работы AEO-Light картинкой, то это наиболее достоверная

Запускаем AEO-Light, ставим частоту кадров 25.000, выбираем New Project и указываем на первый в числовом порядке файл с суффиксом “_00090000”. Когда программа проиндексирует файлы в папке и откроет первый, то появится окно с превью:

Опишу интерфейс:

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

Под превью располагается фонограмма, преобразованная в устаревший формат фонограммы переменной плотности.

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

Вкладка Soundtrack Settings — в ней задаётся область с фонограммной и её высота. Два ползунка с общей подписью Soundtrack определяют левую и правую границу области. Ползунки Frame Pitch Start и Frame Pitch End обозначаю верхнюю и нижнюю границу кадра. Если кадры на киноплёнке кашетированы, то нужно задать границу в середине интервала между кадрами. Search Size задаёт область поиска совпадений для аккуратной стыковки между кадрами. Так как у меня отсканированный видеоряд стабилизирован, то мне уместно будет задать значение 0.03. Слишком большие значения равно как и большая область поиска будут приводить к ложным срабатываниям и сбоям в алгоритме покадровой стыковки звука. Выпадающий список справа определяет тип звуковой дорожки — если линия только одна то ставится монофонический режим, если линии две — стереофонический. Вариант Push-Pull применяется для сканирования звуковых дорожек, записанных на ранних вариантах звукозаписывающего оборудования.

Вкладка Image Processing настраивает яркость, констрастность и среднюю точку изображенияя. Ползунок Lift настраивает уровень средней точки, ползунки Gamma и Gain интуитивно понятны. Опция S Curve управляет линейностью кривой “выгибая” её в вниз или вверх. Blur/Sharp определяют резкость изображения

Вкладки Extract Audio и Queue позволяют как непосредственно сразу извлечь звук, так и добавить в очередь, для чего такое сделано мне не совсем ясно, обычно всё заканчивается на Extract Audio.

Waveform zoom растягивает осицллограмму звука снизу если этого требует донастройка параметров обработки изображения.

Show Soundtrack Only переключает превью на отображения только выделенной области со звуковой дорожкой. Область с кнопками New Sample, Play Sample и Load Settings позволяют запомнить параметры обработки когда нельзя определить наиболее хорошие по осциллографу, и нужно сравнение на слух.

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

Пунктир между двумя дорожками показывает что обе дорожки будут читаться как отдельные каналы
Пунктир между двумя дорожками показывает что обе дорожки будут читаться как отдельные каналы

Киноплёнка, отсканированная с высоким разрешением, без засветов и перекосов не нуждается в танцах с бубном, и в некоторых случаях достаточно только вкладки Soundtrack Settings(в конце статьи ссылки для желающих поэкспериментировать). Теперь можно отрендерить семпл и послушать что получилось:

Звук сразу получился годным, но он несколько приглушён. Это можно исправить, манипулируя настройками во вкладке Image Processing — ползунок резкости изображения. После “докруток” слушаем что получилось:

Чтобы лучше слышать разницу я прогнал фрагмент со стихами.

Обработка звука

Теперь когда всё настроено, звук можно отрендерить в WAV и перейти в iZotope RX11 чтобы выполнить его чистку от шума. Загружаем полученную звуковую дорожку и ищем пустые участки, например участок в начале с упоминанием киностудии, которая снимала ералаш:

с/ш порядка 50 дБ
с/ш порядка 50 дБ

Для сканирования звуковой дорожки рекомендуются камеры с большими матрицами — вплоть до полноразмерных 35мм. Маленькие матрицы шумные и их шум будет заметен во время сканирования звука

Спектр шума получился ровным — практически белый шум и теперь по этому участку можно построить профиль шумодава. Чтобы построить профиль нужно выделить участок с шумом, открыть Voice Denoise, нажать Learn. Оптимизацию можно выбрать исходя из того чего больше на звуковой дорожке — речи или музыки. Я предпочитаю оптимизировать под музыку. Тип фильтра я ставлю Surgical, это требует немного дольше времени для выполнения, но зато шум лучше чистится оставляя полезную информацию. Настройку порога я задаю -9 дБ, и понижение на 9 дБ — из практического опыта этого хватает для работы с советскими киноплёнками. При желании можно пройтись второй раз не трогая настройки, а лишь заново «обучив» фильтр под сниженный уровень шума. Теперь взглянем на спектрограмму и заметим, что полезный сигнал заканчивается на спектре выше 9 КГц и дальше идут артефакты сканирования звука, поэтому всё, что выше 10 КГц можно приглушить:

В принципе, здесь можно закончить чистку звука, хотя ещё можно попытаться «восстановить» что-то в диапазоне от 9 до 15 КГц, можно раздельно почистить шум для музыкальных и сцен с речью, но это уже оставлю на эксперимент читателям. Архив с отрендеренной фонограммой будет в конце статьи.

Сведение дорожек и полировка изображения

Теперь можно вернуться в Resolve, создать новый проект, но уже с более низким разрешением 2880х2160(4:3), добавить туда видеоряд и отрендеренный звук. Синхронизировать дорожки можно на моменте со “взрывом” номера выпуска:

На этой же вкладке обрежем изображение до границ кашетированного кадра на самой плёнке. Во вкладке «Цвет» можно по желанию провести тонкую настройку баланса цветов — Resolve располагает достаточно мощным инструментарием, так как цель его применения — это в первую очередь работа с изображением:

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

После завершения подкруток/танцев с бубнами можно рендерить результат — в качестве примера более тонкого исправления можно привести скриншот ниже — я попытался исправить неравномерности яркости изображения. Рекомендую использовать “жирные” кодировщики до окончания процесса реставрации, т.е до этапа когда следующим уже будет финальный рендер.

Пример коррекции неравномерностей яркости на скорую руку
Пример коррекции неравномерностей яркости на скорую руку

Как по итогу выглядит результат:

Пора подводить итоги. Ещё раз сильно благодарю всех за то, что вы уделили время, прочитали мой цикл статей и оценили. Возможно, в голове возникал вопрос насчёт дальнейшей судьбы сканера. Тут я сам затрудняюсь что-то конкретно говорить. Вроде бы проект интересный, но с другой стороны он сложный и я успел на нём выгореть, так как работал над проектом даже по воскресеньям. Также, к сожалению, у меня пока закончились идеи как его развивать, но думаю, в обществе найдётся человек, который заинтересуется и доделает под свои нужды(в эпилоге 3-й части я оставил ссылки на загрузку STL файлов + проект Solidworks, позже добавлю проект в Keil). На последнем видео можно заметить мерцание по красному каналу — это глюк подсветки, который исправляется, если заменить WS2812 на подсветку с аналоговым управлением через ЦАП по каналу на цвет.

Для желающих поиграться с AEO прилагаю архив с отрендеренной фонограммой(9 гигабайт, после распаковки 26! Google Drive):

https://drive.google.com/file/d/1kW0giWODYGhMhd3DAl1i3c7rD47mxt_W/view?usp=sharing

Для тех, кто хочет попробовать себя в роли реставратора — папка с RAW снимками и отрендеренными роликами(в сумме ~240 гигабайт! YandexDisk): https://disk.yandex.ru/d/q9NPuaZw_v8b7g

AEO-Light: https://github.com/usc-imi/aeo-light

Для ЛЛ ссылка на проект сканера: https://github.com/anrej0705/rmv2plus

Если у вас есть замечания — напишите пожалуйста в комментарии

Есть просьба к профи в этом деле - как стабилизировать кадр, если сама кинокопия косячная и кадр плавает относительно перфорации? Напишите в комментарии если знаете как

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Насколько понятным для вас получился цикл статей?
46.67% Я всё понял!7
40% Я отчасти что-то понял…6
13.33% Я ничего не понял, но было интересно!2
Проголосовали 15 пользователей. Воздержался 1 пользователь.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 12: ↑12 и ↓0+16
Комментарии11

Публикации

Ближайшие события