Сегодня 25 декабря 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Звук и акустика

Процесс перевода киноплёнки в видео

Автор: Евгений Сучев


Как приятно иногда посмотреть старые фильмы. Я думаю, найдётся не много людей, у которых нет хоть одного любимого фильма со старых кинолент. Взять хотя бы фильмы Гайдая, одно слово - классика комедии! Но к сожалению, киноплёнка не вечна. Даже при соблюдении всех правил хранения, она всё равно стареет. Да и видео всё больше теснит киноплёнку со своей арены.

Кто-то может возразить, мол даже Лукас до сих пор снимает свои фильмы на киноленту. Всё верно. Ведь в Америке и по ныне, крупнейшие кинозалы показывают с кинолент, и было бы не логично подсовывать им материалы на видео. Так же, я слышал такой аргумент в пользу кинолент, мол чёткость киноплёнки выше, чем видео. На данный момент техника ушла уже очень далеко вперёд и этот момент становится спорным. По крайней мере, все выпуски новостей и обычных программ давно уже выходят на видеолентах.

Теперь логично мне задать вопрос, а как же быть владельцам видеомагнитофонов и DVD проигрывателей, которые хотят насладится просмотром не в кинотеатра, а дома? Ведь для этого нужно перевести с киноленты на видео. Это ещё пол беды, для этого есть специальные станки. Беда в том, что частота кадров на киноленте 24 кадра в секунду, а видео работает с 25 (для PAL, SECAM) и 30 (для NTSC) кадров в секунду. Вот тут начинаются проблемы.

Естественно, эти проблемы решены, а я просто хочу вам рассказать пути, которыми это сделано. В обычной жизни эти знания вам на вряд ли пригодятся. Они могут пригодится, если вы собираетесь взять какой-нибудь фильм на видео (изначально снятый на киноплёнку) и вернуть ему первозданный вид. То есть, восстановить стандартные 24 кадра и ничего при этом не потерять (я имею ввиду качество). Ведь при переводе из 24 кадров в 25 (или 30) происходит искажение картинки, а нам нужно сделать, что бы их не стало.

Если вас беспокоит, как вы будете хранить 24 кадровое видео, отвечу - в цифровой форме. В своей предыдущей статье я изложил процесс перевода видео в цифровую форму, так что, проблем возникнуть не должно. Вернёмся же к начальной теме статьи. Есть 3 пути перевода из 24 кадров в 25 (про 30 расскажу в конце).

Как это происходит

Первый способ, пожалуй самый простой. Ускорить воспроизведение киноленты на 4%. При этом, 24 кадровое видео превращается в 25 кадровое. Естественно, продолжительность фильма так же сокращается на 4%. Можно посчитать, что с 2 часового фильма срежется около 5 минут. В целом, это конечно мелочи. И всё вроде бы красиво, если бы не одно но. При ускорении видео, вместе с ним ускоряется звук. Естественно, при этом повышается тональность звука. Я не обладаю музыкальным слухом, но у некоторых он есть, и они явно услышат изменение тональности звука. Это является единственным минусом данного метода.

Второй метод уже более сложен. Его уже не получится реализовать на простом оборудовании. Основан он на добавлении к 24 кадру дублирующего 25. В процессе просмотра его должно быть не заметно. Но есть сообщения в Интернете, что некоторые видят при просмотре этот кадр. Он проявляется в виде подёргивания изображения (при движении) каждую секунду. Опять же, заметность этого метода зависит от оборудования, на котором производится просмотр и от самого человека. Зато этот метод избавлен от предыдущего недостатка, звук точно такой же, как в оригинале.

Вот мы и добрались до третьего метода. Это достаточно сложный метод. Для того, что бы его понять, нам придётся разобраться, что же такое поля и кадры в представлении электрической передачи сигналов. Я уже писал ранее, что для передачи изображения по радиолиниям используют чересстрочную развёртку. Суть её состоит в том, что для того, что бы выстроить целый кадр нам нужно передать 2 полукадра (называемые полями). Эти поля передаются с пониженным разрешением 288 строк, но рассредотачиваются на весь экран таким образом, как показано на рисунке.



Показано с увеличением

Слева изображено первое (верхнее, чётное) поле, справа второе (нижнее, нечётное). Но такая картинка возможна на телевизоре при отсутствии инерции свечения люминофора. Реально же, после прохождения первого поля, экран продолжает светиться (люминофор на месте прохождения луча не гаснет сразу). И после прохождения второго поля, на экране получим следующую картинку


Как мы можем заметить, картинка не идеальна. Но смена полей происходит 50 раз в секунду и человеческий глаз этого не замечает. По большому счёту, для телевизора нет понятия кадров, состоящих из 2 полей. Телевизор принимает последовательность полей и в соответствии с порядком их прихода выводит на экран.

Для компьютера (и для видео) есть понятие кадра, состоящего из 2 полей. И это правильно. Ведь если бы мы принимали поля, то картинка бы выглядела так, как изображено на картинке с полями. Правда это несёт с собой определённые проблемы. Так, если начальное видео было снято на видео камеру, то картинка сменяется от поля к полю и может получится, что в 1 кадре (в компьютерном понимании) содержатся картинки от разных кадров (в понимании видеокамеры). Это влечёт за собою проблему гребёнки.



Увеличено

Про гребёнку (или интерлейсную картинку), я говорил в статье про захват и неоднократно буду возвращаться в будущем. Это большая проблема в производстве видео для компьютера. Но это выходит за рамки этой статьи. Вернёмся к тому, с чего начали. Как я уже сказал, один кадр в компьютерном (и видео) понимании содержит 2 поля. То есть можно составить таблицу соответствия полей и кадров (для компьютера и видео).

№ кадра (видео)123456789101112...
№ входящего поля








10в
10н
11в
11н
12в
12н
...в
...н

В этой таблице буквами обозначены поля: в - верхнее; н - нижнее. Для большего удобства, мы будем считать не просто номер поля, а поле номер 1 верхнее и поле номер один нижнее… Нам же, нужно произвести преобразование 24 кадров в 25. Это можно сделать добавлением 1 кадра (о чём сказано выше), или добавлением 2 полей. Естественно, эти поля не будут браться ниоткуда, а просто будут дублировать предыдущие. Если учесть, что у нас на входе не видео, а киноматериал (то есть, каждое поле несёт не индивидуальную информацию, а 2 поля верхнее и нижнее несут информацию об одном кадре), то можно выстраивать новую цепочку.

Одна секунда видео или компьютерного материала

№ кадра (видео)12..111213141516171819202122232425
№ входящего поля
2..11в
2..11н
12в
12н
12в
13н
13в
14н
14в
15н
15в
16н
16в
17н
17в
18н
18в
19н
19в
20н
20в
21н
21в
22н
22в
23н
23в
24н
24в
24н

Мы видим, что в кадры (видео или компьютерные) №1-12 попадают нормальные кадры кино материала (ведь для получения одного кадра кино, нужно верхнее и нижнее поле, из одного и того же кадра), а вот на 13 кадре происходит дублирование предыдущего поля. Этот, 13 кадр не будет воспринят, как похожий на предыдущий (что устраняет проблему с дёрганием картинки, в отличии от добавления кадра), но он уже будет с "гребёнкой". На телевизоре мы не видим никакой гребёнки, а вот на компьютере… На 25 кадре происходит добавление ещё одного поля. Таким образом, преобразовывая из 24 кадров в 25, мы не получаем ни одного похожего кадра. Для телевидения этот метод можно считать идеальным. А вот на компьютере придётся бороться с интерлейсной картинкой.

Теперь вернусь к NTSC формату. Ведь у него 60 полей в секунду (это равно 30 кадров). Здесь первые два метода не подойдут. Ускорение даст прирост скорости на 25%, что естественно не приемлемо. Добавление к 24 кадрам ещё 6, то же нельзя назвать правильным, картинка в этом случае получится вообще дёрганой. Остаётся только 3 метод. Здесь, так же происходит дублирование полей. Но на этот раз, нам нужно добавить 12 полей Опять же, составим таблицу:

№ кадра (видео)123456789101112131415
№ входящего поля










10в
10н
10в
11н
11в
12н
12в
12н

№ кадра (видео)161718192021222324252627282930
№ входящего поля13в
13н
14в
14н
14в
15н
15в
16н
16в
16н
17в
17н
18в
18н
18в
19н
19в
20н
20в
20н
21в
21н
22в
22н
22в
23н
23в
24н
24в
24н

После такого процесса 24 кадровый киноматериал превращается в 30 кадровое видео. Этот процесс достаточно стандартен и имеет название Telecine (обратный процесс, перевода в 24 кадровое видео имеет название InverseTelecine).

Как от этого избавиться

Ну вот, мы и разобрались, как можно преобразовать из 24 кадрового киноматериала в 25 и 30 кадровое видео. Теперь нужно разобраться, как из стандартного видео (25 или 30 кадров) перевести в первозданные 24 кадра. Это можно сделать в два этапа:

  1. Нужно определить, каким методом было произведено преобразование. Если фильм в NTSC формате, то метод только один - Telecine. Для PAL или SECAM придётся определять.
  2. Преобразовать обратно в 24 кадра.

Вы можете спросить, а зачем возвращать первозданный вид? Отвечу, при этом картинка будет чётче, и движения будут менее смазанными.

Теперь расскажу, как же определить, каким способом было произведено преобразование частоты кадров. Фильмы, преобразованные первым способом, физически определить невозможно. Здесь нужно знать, что изначально фильм был снят на киноплёнке. Но даже если мы будем это знать, всё равно, преобразовывать обратно нет никакого смысла, проблем с видео не будет никаких, а звук… оставить всё как есть. Фильмы, преобразованные вторым способом, определить достаточно просто. Нужно его открыть в VirtualDub и на динамических эпизодах клавишами "лево" и "право" перемещаться по кадрам. На динамических сценах каждый кадр должен отличаться от предыдущего. Если вы нашли 2 одинаковых кадра, то перемещайтесь вперёд или назад на 25 кадров. Если там ситуация повторяется, значит этот фильм был преобразован вторым способом. Избавится от этого так же достаточно просто. Для этого нужно, что бы у вас была установлена утилита Avisynth. Сам по себе это скриптовый язык, в суть которого сейчас я углубляться не буду. В нём можно производить огромное количество операций с цифровым видео. Вот как будет выглядеть скрипт для удаления одного кадра из 25 кадрового видео.


avisource("С:...путь…ваш_фильм.avi")
LoadPlugin("C:...путь...decomb.dll")
Telecide(order=1,guide=2)
Decimate(cycle=25)

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

Фильмы, преобразованные третьим способом определить несколько сложнее. Для того, кто не так давно занимается видео монтажом на компьютере, есть один достаточно простой способ как это определить. Открываем исследуемый фильм в программе VirtualDub. Далее, нужно найти кусок видео, где движение происходит 1 секунду и более. При помощи клавиш "лево" и "право" исследуем этот динамический промежуток, если после каждых 12 кадров происходит разложение картинки из нормальной (прогрессивной) в интерлейсную и обратно, значит фильм был преобразован в 25 кадров 3 способом. Опять же, лечится это при помощи утилиты Avisynth. Скрипт, для преобразования из 25 кадрового видео (произведённое третьим способом) в 24 кадровое будет выглядеть точно так же, как и для удаления 1 кадра:


avisource("С:...путь…ваш_фильм.avi")
LoadPlugin("C:...путь...decomb.dll")
Telecide(order=1,guide=2)
Decimate(cycle=25)

Теперь пришёл черёд разобраться с фильмами в NTSC формате. Для обнаружения был ли применён процесс Telecine при преобразовании из 24 кадров в 30, мы воспользуемся предыдущим методом. Если изначально это был кинофильм, то других методов и не может быть, но убедиться, что это был изначально кинофильм, не помещает. Опять же, открываем фильм в VirtualDub и ищем динамическое место продолжительностью не менее 1 секунды. При помощи клавиш "лево" и "право" смотрим, что происходит с картинкой. Если на каждые 3 прогрессивных кадра приходится 2 интерлейсных, значит был применён процесс Telecine. Для избавления от этого произведём процесс InverseTelecine при помощи всё той же утилиты Avisynth.


avisource("С:...путь…ваш_фильм.avi")
LoadPlugin("C:...путь...decomb.dll")
Telecide(order=1,guide=1)
Decimate()

После открытия этого скрипта в программе монтажа, вместо 30 кадрового видео, мы уже будем иметь 24 кадровый фильм.

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

Идейным вдохновителем написания данной статьи является форум http://forum.playland.ru/forum15.phtml

Дополнительные материалы

 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥
Apple хочет самостоятельно защищать свои интересы в антимонопольном расследовании против Google 3 ч.
Гладко было на бумаге: забагованное ПО AMD не позволяет раскрыть потенциал ускорителей Instinct MI300X 9 ч.
Netflix подал в суд на Broadcom, заявив, что VMware нарушает его патенты в области виртуализации 9 ч.
На Nintendo Switch выйдет подражатель Black Myth: Wukong, который позиционируется как «одна из важнейших игр» для консоли 10 ч.
Датамайнеры нашли в файлах Marvel Rivals следы лутбоксов — NetEase прокомментировала ситуацию 12 ч.
Надёжный инсайдер раскрыл, когда в Game Pass добавят Call of Duty: World at War и Singularity 13 ч.
Лавкрафтианские ужасы на море: Epic Games Store устроил раздачу рыболовного хоррора Dredge, но не для российских игроков 13 ч.
VK запустила инициативу OpenVK для публикации ПО с открытым кодом 14 ч.
CD Projekt Red объяснила, почему оставила мужскую версию Ви за бортом кроссовера Fortnite и Cyberpunk 2077 16 ч.
Открытое ПО превратилось в многомиллиардную индустрию 16 ч.