Как приятно иногда посмотреть старые фильмы. Я думаю, найдётся не много людей, у которых нет хоть одного любимого фильма со старых кинолент. Взять хотя бы фильмы Гайдая, одно слово - классика комедии! Но к сожалению, киноплёнка не вечна. Даже при соблюдении всех правил хранения, она всё равно стареет. Да и видео всё больше теснит киноплёнку со своей арены.
Кто-то может возразить, мол даже Лукас до сих пор снимает свои фильмы на киноленту. Всё верно. Ведь в Америке и по ныне, крупнейшие кинозалы показывают с кинолент, и было бы не логично подсовывать им материалы на видео. Так же, я слышал такой аргумент в пользу кинолент, мол чёткость киноплёнки выше, чем видео. На данный момент техника ушла уже очень далеко вперёд и этот момент становится спорным. По крайней мере, все выпуски новостей и обычных программ давно уже выходят на видеолентах.
Теперь логично мне задать вопрос, а как же быть владельцам видеомагнитофонов и 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 поля. То есть можно составить таблицу соответствия полей и кадров (для компьютера и видео).
№ кадра (видео) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ... |
№ входящего поля | 1в 1н | 2в 2н | 3в 3н | 4в 4н | 5в 5н | 6в 6н | 7в 7н | 8в 8н | 9в 9н | 10в 10н | 11в 11н | 12в 12н | ...в ...н |
В этой таблице буквами обозначены поля: в - верхнее; н - нижнее. Для большего удобства, мы будем считать не просто номер поля, а поле номер 1 верхнее и поле номер один нижнее… Нам же, нужно произвести преобразование 24 кадров в 25. Это можно сделать добавлением 1 кадра (о чём сказано выше), или добавлением 2 полей. Естественно, эти поля не будут браться ниоткуда, а просто будут дублировать предыдущие. Если учесть, что у нас на входе не видео, а киноматериал (то есть, каждое поле несёт не индивидуальную информацию, а 2 поля верхнее и нижнее несут информацию об одном кадре), то можно выстраивать новую цепочку.
Одна секунда видео или компьютерного материала
№ кадра (видео) | 1 | 2..11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
№ входящего поля | 1в 1н | 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 полей Опять же, составим таблицу:
№ кадра (видео) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
№ входящего поля | 1в 1н | 2в 2н | 2в 3н | 3в 4н | 4в 4н | 5в 5н | 6в 6н | 6в 7н | 7в 8н | 8в 8н | 9в 9н | 10в 10н | 10в 11н | 11в 12н | 12в 12н |
№ кадра (видео) | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
№ входящего поля | 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 кадра. Это можно сделать в два этапа:
- Нужно определить, каким методом было произведено преобразование. Если фильм в NTSC формате, то метод только один - Telecine. Для PAL или SECAM придётся определять.
- Преобразовать обратно в 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